var TICKER = function()
{
    var countEl     = Ext.get("ticker-count");
    var scrollingEl = Ext.get("ticker-scroller");;
    var spacer      = "&nbsp;&middot;&nbsp;";
    var lock        = false;

    var scrollMe = function(el)
    {
        el.slideIn('r',
                   {
                       easing: 'easeNone',
                       duration: 4
                   }).slideOut('l',
                               {
                                   easing: 'easeNone',
                                   duration: 4,
                                   useDisplay: false
                               });
    };
    
    var processResponse = function(options, success, response)
    {
        var data;

        if (success)
        {
            data         = Ext.decode(response.responseText).usersessioncount[0];
            var count    = data.LiveSessionCount;
            var userOs   = data.UserOS;
            var location = data.UserLocationName;
            var city     = data.UserCityName;
            var region   = data.UserRegionCode;
            
            var countFaded = function()
            {
                var countHtml = "";
                
                for (var i = 0; i < count.length; i++)
                {
                    var img = count.substring(i, i + 1);
                    
                    if (img == ',')
                    {
                        img = "comma";
                    }
                    
                    var html = '<img src="/images/counter/'+img+'.gif" alt="" />';
                    
                    countHtml += html;
                }
                
                countEl.update(countHtml);
                countEl.fadeIn({duration: .25})
            };

            countEl.fadeOut({duration: .25, callback: countFaded});
            scrollMe(scrollingEl.update("Just Served: " + userOs + " User" + spacer + location + spacer + city + ", " +
                                        region));
            lock = false;
        }
    };

    var run_ajax = function()
    {
        if (!lock)
        {
            lock = true;

            Ext.Ajax.request(
            {
                url: '/webService/jwWebService.php',
                params:
                {
                    svcname: 'userSessionCountJSONGenerator',
                    svcoutput: 'json',
                    svcctime: 9
                },
                method: 'GET',
                disableCaching : false,
                callback: processResponse
            });
        }
    };

    var task =
    {
        run: run_ajax,
        interval: 10000
    };

    var runner = new Ext.util.TaskRunner();

    runner.start(task);
};

Ext.onReady(TICKER);

Ext.onReady(function()
{
    TICKER();
    
    Ext.get(["users-served", "ticker-count", "scroller-wrap"]).on('click', function()
    {
		window.parent.location = "/map";
    });
});