Sys.Timer = function() { Sys.Timer.initializeBase(this); this._interval = 1000; this._enabled = false; this._timer = null;} Sys.Timer.prototype = {get_interval: function() { return this._interval;}, set_interval: function(value) { if (this._interval !== value) {this._interval = value; this.raisePropertyChanged('interval'); if (!this.get_isUpdating() && (this._timer !== null)) {this._stopTimer(); this._startTimer();}}}, get_enabled: function() { return this._enabled; }, set_enabled: function(value) { if (value !== this.get_enabled()) { this._enabled = value; this.raisePropertyChanged('enabled'); if (!this.get_isUpdating()) { if (value) {this._startTimer();} else {this._stopTimer();}}}}, add_tick: function(handler) {this.get_events().addHandler("tick", handler);}, remove_tick: function(handler) { this.get_events().removeHandler("tick", handler);}, dispose: function() {this.set_enabled(false); this._stopTimer();Sys.Timer.callBaseMethod(this, 'dispose'); }, updated: function() {Sys.Timer.callBaseMethod(this, 'updated'); if (this._enabled) {this._stopTimer(); this._startTimer();}}, _timerCallback: function() { var handler = this.get_events().getHandler("tick"); if (handler) { handler(this, Sys.EventArgs.Empty);}}, _startTimer: function() {this._timer = window.setInterval(Function.createDelegate(this, this._timerCallback), this._interval);}, _stopTimer: function() {window.clearInterval(this._timer); this._timer = null;}} Sys.Timer.descriptor = { properties: [ {name: 'interval', type: Number}, {name: 'enabled', type: Boolean} ], events: [ {name: 'tick'} ]} Sys.Timer.registerClass('Sys.Timer', Sys.Component); if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();