﻿
function DataService(iUrl, iTimeout)
{
    var This = this;

    // Data members
    This.Url = null;
    This.Timeout = null;
    This.Timer = null;

    // Events
    This.OnUpdate = new EventHandler();

    // Methods
    This.Start = function()
    {
        if (This.Timer)
            return;

        This.Update();

        This.Timer = new Timer(This.Timeout, function() { This.Update(); } );
        This.Timer.Start();
    }

    This.Stop = function()
    {
        This.Timer.Stop();
        This.Timer = null;
    }

    This.Update = function(iUrl)
    {
        var httpRequest = new HttpRequest(true);
        var url = (iUrl) ? iUrl : This.Url;

        Debug.Trace('[DataService.Update] ' + url);

        httpRequest.OnLoad.Add(This.OnUpdate);
        httpRequest.GetRequest(url);
    }
    
    // Initialize
    {
        This.Url = iUrl;
        if (iTimeout)
            This.Timeout = iTimeout;
    }
}