﻿$(document).ready(function() {
    buildFeed('#bbc-feed', '/rss-proxy.ashx?url=http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/business/rss.xml');
});

function buildFeed(id, feedUrl) {
    $.ajax({
        type: 'GET',
        url: feedUrl,
        cache: false,
        dataType: 'xml',
        success: function(feed) {
            var rss = $('channel', feed);
            $(id + '-link').attr('href', rss.children('link').text());
            $(id + '-link').attr('title', rss.children('title').text());
            $(id).data('rss-items', rss.children('item'));
            $(id).data('rss-index', 0);
            $(id).fadeOut(500, rssNextItem);
        },
        error: function(req, msg, ex) {
        }
    });
}

function rssNextItem() {
    var e = $('#' + this.id);
    var items = e.data('rss-items');
    var index = e.data('rss-index');
    if (index >= items.length) {
        if (0 == index) {
            return;
        }

        index = 0;
    }

    var f = $(items[index]);
    var title = f.children('title').text();
    var desc = f.children('description').text();
    var link = f.children('link').text();
    var date = new Date(f.children('pubDate').text());
    var diff = Math.ceil((new Date().getTime() - date.getTime()) / (1000 * 60 * 60));
    e.html('<a href="' + link + '" title="' + desc + '" target="_blank">' + title + '</a> - <em>' + diff + ' hour' + ((1 < diff) ? 's' : '') + ' ago</em>');
    e.fadeIn(1000);
    e.data('rss-index', index + 1);
    setTimeout("$('#" + this.id + "').fadeOut(1000, rssNextItem);", 10000);
}
