1 |
dpavlin |
1 |
/*----------------------------------------------------------------------------\ |
2 |
|
|
| Timer Class | |
3 |
|
|
|-----------------------------------------------------------------------------| |
4 |
|
|
| Created by Erik Arvidsson | |
5 |
|
|
| (http://webfx.eae.net/contact.html#erik) | |
6 |
|
|
| For WebFX (http://webfx.eae.net/) | |
7 |
|
|
|-----------------------------------------------------------------------------| |
8 |
|
|
| Object Oriented Encapsulation of setTimeout fires ontimer when the timer | |
9 |
|
|
| is triggered. Does not work in IE5.00 | |
10 |
|
|
|-----------------------------------------------------------------------------| |
11 |
|
|
| Copyright (c) 1999 - 2002 Erik Arvidsson | |
12 |
|
|
|-----------------------------------------------------------------------------| |
13 |
|
|
| This software is provided "as is", without warranty of any kind, express or | |
14 |
|
|
| implied, including but not limited to the warranties of merchantability, | |
15 |
|
|
| fitness for a particular purpose and noninfringement. In no event shall the | |
16 |
|
|
| authors or copyright holders be liable for any claim, damages or other | |
17 |
|
|
| liability, whether in an action of contract, tort or otherwise, arising | |
18 |
|
|
| from, out of or in connection with the software or the use or other | |
19 |
|
|
| dealings in the software. | |
20 |
|
|
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
21 |
|
|
| This software is available under the three different licenses mentioned | |
22 |
|
|
| below. To use this software you must chose, and qualify, for one of those. | |
23 |
|
|
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
24 |
|
|
| The WebFX Non-Commercial License http://webfx.eae.net/license.html | |
25 |
|
|
| Permits anyone the right to use the software in a non-commercial context | |
26 |
|
|
| free of charge. | |
27 |
|
|
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
28 |
|
|
| The WebFX Commercial license http://webfx.eae.net/commercial.html | |
29 |
|
|
| Permits the license holder the right to use the software in a commercial | |
30 |
|
|
| context. Such license must be specifically obtained, however it's valid for | |
31 |
|
|
| any number of implementations of the licensed software. | |
32 |
|
|
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
33 |
|
|
| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt | |
34 |
|
|
| Permits anyone the right to use and modify the software without limitations | |
35 |
|
|
| as long as proper credits are given and the original and modified source | |
36 |
|
|
| code are included. Requires that the final product, software derivate from | |
37 |
|
|
| the original source or any software utilizing a GPL component, such as | |
38 |
|
|
| this, is also licensed under the GPL license. | |
39 |
|
|
|-----------------------------------------------------------------------------| |
40 |
|
|
| 2002-10-14 | Original version released | |
41 |
|
|
|-----------------------------------------------------------------------------| |
42 |
|
|
| Created 2002-10-14 | All changes are in the log above. | Updated 2002-10-14 | |
43 |
|
|
\----------------------------------------------------------------------------*/ |
44 |
|
|
|
45 |
|
|
function Timer(nPauseTime) { |
46 |
|
|
this._pauseTime = typeof nPauseTime == "undefined" ? 1000 : nPauseTime; |
47 |
|
|
this._timer = null; |
48 |
|
|
this._isStarted = false; |
49 |
|
|
} |
50 |
|
|
|
51 |
|
|
Timer.prototype.start = function () { |
52 |
|
|
if (this.isStarted()) |
53 |
|
|
this.stop(); |
54 |
|
|
var oThis = this; |
55 |
|
|
this._timer = window.setTimeout(function () { |
56 |
|
|
if (typeof oThis.ontimer == "function") |
57 |
|
|
oThis.ontimer(); |
58 |
|
|
}, this._pauseTime); |
59 |
|
|
this._isStarted = false; |
60 |
|
|
}; |
61 |
|
|
|
62 |
|
|
Timer.prototype.stop = function () { |
63 |
|
|
if (this._timer != null) |
64 |
|
|
window.clearTimeout(this._timer); |
65 |
|
|
this._isStarted = false; |
66 |
|
|
}; |
67 |
|
|
|
68 |
|
|
Timer.prototype.isStarted = function () { |
69 |
|
|
return this._isStarted; |
70 |
|
|
}; |
71 |
|
|
|
72 |
|
|
Timer.prototype.getPauseTime = function () { |
73 |
|
|
return this._pauseTime; |
74 |
|
|
}; |
75 |
|
|
|
76 |
|
|
Timer.prototype.setPauseTime = function (nPauseTime) { |
77 |
|
|
this._pauseTime = nPauseTime; |
78 |
|
|
}; |