// Javascript library for managing SiteMessage's

// CONSTANTS
var COUNT_OF_MESSAGES_TO_GET = "3";
var MILLISECONDS_BETWEEN_IN_GAME_MESSAGE_RETRIEVAL = 50 * 1000;  // SECONDS * MILLISECONDS_CONSTANT
var MILLISECONDS_BETWEEN_HAPPENING_NOW_MESSAGE_RETRIEVAL = 60 * 1000;  // SECONDS * MILLISECONDS_CONSTANT

// Holds the messages to be displayed in
var gameMessages = new Array();

// Holds a comma separated list of chat user screennames
var chatUserScreennames = '';

// The currently logged-in member's screenname
var memberScreenname = '';

// The currently logged-in user's membership level (ie, SIC, SIP)
var memberStatus = '';

// Call the message manager server and retrieve a new set of messages
function msgMgr_retrieveMessagesFromServer()
{
    $.post( "/activityFeed/getInGameMessages.jsp",
        {
            count: COUNT_OF_MESSAGES_TO_GET,
            screenName: memberScreenname,
            memberStatus: memberStatus,
            chatUserScreennames: chatUserScreennames,
            keyword: gameKeyword
        },
        function ( data, textStatus ) {

            // Expecting a JSON response back from MessageManagerController
            var results = eval( '(' + data + ')' );
            var success = ( results.status == 'ok');
            if ( success ) {
                //alert ( "get messages call success, result was: " + data );
                // loop through json response and add to gameMessages array
                for ( messageIndex in results.messages )
                {
                    if ( results.messages[ messageIndex ] )
                    {
                        gameMessages.push( results.messages[ messageIndex ] );
                    }
                }
            }
            // set timeout again
            setTimeout( "msgMgr_retrieveMessagesFromServer()", MILLISECONDS_BETWEEN_IN_GAME_MESSAGE_RETRIEVAL );
        }
    );
}

// Call the message manager server to retrieve more Happening Now messages
function msgMgr_retrieveHappeningNowMessagesFromServer()
{
    //
    $.post( "/activityFeed/getHappeningNowMessages.jsp",
        {
        },
        function ( data, textStatus ) {

            // Expecting an HTML response back from MessageManagerController
            $( "#tickerHome .tickerContent").html( data );
            // set timeout again
            setTimeout( "msgMgr_retrieveHappeningNowMessagesFromServer()", MILLISECONDS_BETWEEN_HAPPENING_NOW_MESSAGE_RETRIEVAL );
        }
    );
}

// Get the next message to be displayed in-game.
function msgMgr_getGameMessage()
{
    var msg = gameMessages.shift();
    if ( msg == undefined || msg == null )
    {
        msg = '';
    }
    return msg;
}


function msgMgr_setChatUsers( screennames )
{
    chatUserScreennames = screennames;
}

