DWREngine.setErrorHandler(DWRMessageHandler);
DWREngine.setWarningHandler(DWRMessageHandler);

function populateEspnHeadlines(rssFeed)
{
    populateComponent("espnheadlinefeed", rssFeed, 7 );
}

function populateGolfHeadlines(rssFeed)
{
    populateComponent("golfheadlinefeed", rssFeed, 7 );
}

function populateLatestNewsFeed(rssFeed)
{
    populateComponent("latestnewsfeed", rssFeed, 6 );
}

function populateComponent(componentName, rssFeed, numItems )
{
    document.getElementById(componentName).innerHTML = "";
    var feedData = "";
    if( numItems > rssFeed.feedItems.length ) numItems = rssFeed.feedItems.length;
    for( var i = 0; i < numItems; i++ )
    {
        componentHTML = document.getElementById(componentName).innerHTML;
           if (componentName == "latestnewsfeed") {
             if (i == 0) { feedData = feedData + "<dl class='col1'>"; }
             if (i == 3) { feedData = feedData + "<dl class='col2'>"; }

             if(i < 3 ) {feedData = feedData + "<dd><a href='" + rssFeed.feedItems[i].url + "' target='_blank' >" + rssFeed.feedItems[i].title + "</a></dd>"; }
             else { feedData = feedData + "<dd><a href='" + rssFeed.feedItems[i].url + "' target='_blank'>" + rssFeed.feedItems[i].title + "</a></dd>";  }

             if (i == 2) { feedData = feedData + "</dl>"; }
             if (i == 5) { feedData = feedData + "</dl>"; }

                document.getElementById(componentName).innerHTML = feedData;

            }
            else if (componentName == "espnheadlinefeed" || componentName == "golfheadlinefeed") {
                      componentHTML = componentHTML + "<dl><dd><a href='" + rssFeed.feedItems[i].url + "' target='_blank' >" + rssFeed.feedItems[i].title + "</a></dd></dl>";
                      document.getElementById(componentName).innerHTML = componentHTML;
             }
             else {
                    componentHTML = componentHTML + "<ul class='rss'><li class='pubDate'>" + rssFeed.feedItems[i].formattedPublishDate + "</li><li class='title'><a href='" + rssFeed.feedItems[i].url + "' >" + rssFeed.feedItems[i].title + "</a></li><li class='description'>" + truncateOnBoundary(rssFeed.feedItems[i].description, 48, 68) + "..." + "</li><li class='link'><a href='" + rssFeed.feedItems[i].url + "' >More</a></li></ul>";
                    document.getElementById(componentName).innerHTML = componentHTML;
                    }
    }
    SI.ClearChildren.clear();
}

function truncateOnBoundary( longString, minLength, maxLength )
{
    for( var i = minLength; i < maxLength; i++ )
    {
        var boundary = /\W/;

        if( boundary.test(longString[i]) )
        {
            break;
        }
    }

    return longString.slice(0, i);
}
