Sys.Timer=function(){Sys.Timer.initializeBase(this);this._interval=1e3;this._enabled=!1;this._timer=null};Sys.Timer.prototype={get_interval:function(){return this._interval},set_interval:function(n){this._interval!==n&&(this._interval=n,this.raisePropertyChanged("interval"),this.get_isUpdating()||this._timer===null||(this._stopTimer(),this._startTimer()))},get_enabled:function(){return this._enabled},set_enabled:function(n){n!==this.get_enabled()&&(this._enabled=n,this.raisePropertyChanged("enabled"),this.get_isUpdating()||(n?this._startTimer():this._stopTimer()))},add_tick:function(n){this.get_events().addHandler("tick",n)},remove_tick:function(n){this.get_events().removeHandler("tick",n)},dispose:function(){this.set_enabled(!1);this._stopTimer();Sys.Timer.callBaseMethod(this,"dispose")},updated:function(){Sys.Timer.callBaseMethod(this,"updated");this._enabled&&(this._stopTimer(),this._startTimer())},_timerCallback:function(){var n=this.get_events().getHandler("tick");n&&n(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);