var lwapi;
                
function init() {
    lwapi = new LWAPI("http://community.campbellkitchen.com");      //PROD
    //lwapi = new LWAPI("http://kitchenscc.stage.liveworld.com");        //STAGING
    
    // get up to 2 recent threads
    getRecentCategoryThreads(570000002,0,2);
}

/*###########################################################################################*/
/*########################## BEGIN RECENT THREADS FUNCTIONALITY #############################*/
/*###########################################################################################*/

function getRecentCategoryThreads(categoryID, start, numResults)
{
    lwapi.callContentService("getRecentCategoryThreads", 
        "categoryID="+categoryID+"&start="+start+"&numResults="+numResults,getThreads);
}

function getThreads(threadList) { 
    if (threadList.threads instanceof Array) {
        for (i = 0; i < threadList.threads.length; i++) {
            appendThreadHtml(threadList.threads[i]);
        }
    }
}

function appendThreadHtml(thread)
{
    var threadBody = generateSummary(thread.body,70);
    var forumThreadsArea = document.getElementById("topics");
    
    forumThreadsArea.innerHTML += '<div class="topic"><div class="head clearfix">' +
                                    '<p class="author">&#8212; #user.fullname.' + thread.threadID + '</p>' +
                                    '<p class="topic-hdr">' + thread.subject + '</p>' +
                                    '</div>' +
                                    '<p>' + threadBody + '</p>' +
                                    '<a href="' + CreateLWAuthLink(thread.uRL) + '" class="button readmore-button">Read more &gt;</a>' +
                                    '</div>';
    
    lwapi.callUsersService("getPublicUserInfo", 
        "userID="+thread.author.userID,
        function (userInfo)
        {
            var forumThreadsArea = document.getElementById("topics");
            var html = forumThreadsArea.innerHTML;
            var regExString = '#user.fullname.' + thread.threadID;

            html = html.replace(regExString, returnNamedPropertyValue(userInfo, 'name'));
            forumThreadsArea.innerHTML = html;
        }
        );
}

/*###########################################################################################*/
/*########################## END RECENT THREADS FUNCTIONALITY #############################*/
/*###########################################################################################*/


function CreateLWAuthLink(url)
{
    
    if(loggedin && loggedin == 'true')
    {
        return 'javascript:checkLWAuthAndRedirect(\'' + url + '\');';   
    }
    else
    {
        return url;
    }
}

function generateSummary(bodyText, summaryLength)
{
    var summary = bodyText;
    
    summary = summary.replace(/<br>/gi, " ");
    
    if(summary.length > summaryLength)
    {    
        summary = summary.substring(0, summaryLength);
        summary += '[...]';
    }
    
    return summary;
}

function returnNamedPropertyValue(nameValueObject, propertyName)
{
    if(nameValueObject[0] && nameValueObject[0].name)
    {
        for(i = 0; i < nameValueObject.length; i++)
        {
            if(nameValueObject[i].name == propertyName)
            {
                if(nameValueObject[i].value)
                {
                    return nameValueObject[i].value;
                }
            }
        }
    }
    
    return 'null';
} 

onload = init;