function ForumTopic(Parent, Uri) {
    var fv;
    var tags = {};
    var topic;

    var loadTag = function(data) {
        tags[data.id] = data;
        $('<a href="/tag/'+data.id+'">'+data.text+'</a>').appendTo($('.tags.detaildata', fv));
    };

    var setForumLink = function(forum) {
        var link = $('div.breadcrumb a.forumlink', fv);

        if (forum == 'events') {
            link.text('< back to beer events').attr('href', '/forum/events');
        } else if (forum == 'talk') {
            link.text('< back to beer talk').attr('href', '/forum/talk');
        } else {
            link.text('< back to beerriot meta').attr('href', '/forum/riot');
        }
    };

    var loadTopic = function(data) {
        topic = data;
        $('.topictitle', fv).text(data.title);
        setForumLink(data.forum);

        if (data.forum == 'events') {
            if(data.start) {
                $('div.eventdates', fv).show()
                .find('span.startdate').text(
                    format_date(make_date(data.start.date)));
                if (data.end) {
                    $('span.enddate', fv).html('&ndash; '+
                        format_date(make_date(data.end.date)));
                }
            }

            if (data.locations.length > 0) {
                $('.eventloc', fv).show().find('.primaryloc')
                .find('span').text(data.locations[0].location).end()
                .find('a').attr('href', '/local?address='+encodeURIComponent(data.locations[0].location));
            }

            if (data.website) {
                $('.eventweb', fv).show()
                  .find('a').attr('href', data.website).text(data.website);
            }
        }

        if (data.tags.length > 0) {
            $('.eventtags', fv).show();
            for (var i = 0; i < data.tags.length; i++) {
                fetch('tag', data.tags[i], loadTag);
            }
        }

        CommentTable($('.comments', fv), data.comments);
    };

    var loadTemplate = function(data) {
        fv = $(data).appendTo(Parent);
        $.getJSON(Uri, [], loadTopic);
    };

    $.get('/'+stv+'/html/forum_topic.html', [], loadTemplate);
}

$(function() {
    ForumTopic($('#view'), data_uri);
});

