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

function populateEditorsblogZrail(rssFeed) {
    populateComponent("editorsblogZrail_fd", 2, rssFeed);
}

function populateEditorsblogYrail(rssFeed) {
    populateComponent("editorsblogYrail_fd", feedmanager.numItems, rssFeed);
}

function populateWwd(rssFeed) {
    populateComponent("wwdnews_fd", feedmanager.numItems, rssFeed);
}

function populateComponent(componentName, numItems, rssFeed) {
    document.getElementById(componentName).innerHTML = "";
    if (numItems > rssFeed.feedItems.length ) {
        numItems = rssFeed.feedItems.length;
    }
    if (componentName == 'wwdnews_fd') {
        target=' target="_blank" ';
    } else {
        target='';
    }

    for( var i = 0; i < numItems; i++ ) {
        componentHTML = document.getElementById(componentName).innerHTML;

        //if (componentName.substring('editorsblog') != -1) {
        feedUrla = rssFeed.feedItems[i].url.split('/');

        rssItemLink = "";
        for (feedsInc=0; feedsInc<feedUrla.length; feedsInc++) {
            if (feedUrla[feedsInc] !== '' && feedUrla[feedsInc] !== 'http:' && feedUrla[feedsInc].indexOf('wmagazine.com') === -1) {
                rssItemLink = rssItemLink + "/" + feedUrla[feedsInc];
            }
        }
        //alert(rssItemLink);

        componentHTML = componentHTML + "<ul class='rss'>";

        componentHTML = componentHTML + "<li class='title'><a href='" + rssItemLink + "'" + target +">" + rssFeed.feedItems[i].title + "</a></li>";

        componentHTML = componentHTML + "<li class='description'>" + truncateOnBoundary(rssFeed.feedItems[i].description, 48, 68) + "..." + "</li>";

        componentHTML = componentHTML + "<li class='link'><a href='" + rssItemLink + "'" + target +">More</a></li>";

        componentHTML = componentHTML + "<li class='pubDate'>" + rssFeed.feedItems[i].formattedPublishDate + "</li>";

        componentHTML = componentHTML + "</ul>";

        document.getElementById(componentName).innerHTML = componentHTML;
    }
}

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);
}

