﻿
// rename GameDataService
function GameData(iUrl, iTimeout, iInitialData, iStartService)
{
    var This = this;

    // Data members
    This.Service = null;
    This.Games = {};

    // Events
    This.OnUpdate = new EventHandler();

    // Methods
    This.Start = function()
    { This.Service.Start(); }

    This.Update = function(iUrl)
    { This.Service.Update(iUrl); }
    
    This.DataUpdated = function(iUrl, iData)
    {
        Debug.Trace('[GameData.Update]\n' + iData.encodeHTML());
        try
        {
            This.Games = eval(iData);
        }
        catch (e)
        {
        }
        This.OnUpdate.Invoke();
    }

    // Initialize
    {
        if (iInitialData)
            This.Games = iInitialData;
    
        This.Service = new DataService(iUrl, iTimeout);
        This.Service.OnUpdate.Add(This.DataUpdated);
        
        if (iStartService)
            This.Start();
    }
}
