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(A){if(this._interval!==A){this._interval=A;this.raisePropertyChanged("interval");if(!this.get_isUpdating()&&(this._timer!==null)){this._stopTimer();this._startTimer()}}},get_enabled:function(){return this._enabled},set_enabled:function(A){if(A!==this.get_enabled()){this._enabled=A;this.raisePropertyChanged("enabled");if(!this.get_isUpdating()){if(A){this._startTimer()}else{this._stopTimer()}}}},add_tick:function(A){this.get_events().addHandler("tick",A)},remove_tick:function(A){this.get_events().removeHandler("tick",A)},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 A=this.get_events().getHandler("tick");if(A){A(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);