﻿Sys.Timer=function(){Sys.Timer.initializeBase(this);this._interval=1e3;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");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);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();