var macpro = macpro || {};

macpro.pluck = {
    
    loadWidget: function (args) {
        if (args.id && args.container) {
            generic.templatefactory.get({path: args.template }).evaluateCallback({
                object: args,
                callback: function(args, html) {
                    args.container.insert(html);
                    pluckAppProxy.replaceTag(args.tag);
                }.curry(args)
            });
        };
    },
    
    loadRecentDiscussions: function(args) {
        var request = new PluckSDK.DiscoverContentActionRequest();
        request.Activity = PluckSDK.DiscoveryActivity.Recent;
        request.Type = PluckSDK.ContentType.Discussion;
        request.MaximumNumberOfDiscoveries = 2;
        request.Age = 15;        
        
        PluckSDK.SendRequests( 
            request, 
            macpro.pluck.processDiscoveryAction.curry(args.container, args.template)
        );
    },
    
    loadPopularDiscussions: function(args) {
        var request = new PluckSDK.DiscoverContentActionRequest();
        request.Activity = PluckSDK.DiscoveryActivity.Commented;
        request.Type = PluckSDK.ContentType.Discussion;
        request.MaximumNumberOfDiscoveries = 2;
        request.Age = 15;        
        
        PluckSDK.SendRequests( 
            request, 
            macpro.pluck.processDiscoveryAction.curry(args.container, args.template)
        );
    },
    
    processDiscoveryAction: function (container, template, pluckData) {
        if (!container) { return; }
        if (pluckData[0].DiscoveredContent) {
            pluckData[0].DiscoveredContent.reverse().each( function(content) {                
                content.dateFormatted = content.LastPostDate.toString('MM/dd/yyyy h:mm tt');
                content.postWord = content.PostCount == 1 ? 'Post' : 'Posts';
                generic.templatefactory.get({path: template}).evaluateCallback({
                    object: content,
                    callback: function(container, html) {
                        container.insert( { 'top' : html } );
                    }.curry(container)
                });
            });
        } else {
            container.up('div').hide();
        }
    }
    
};


document.observe("dom:loaded", function() {
    var id = $('article_id') ? $('article_id').innerHTML : '';
    id = id.replace(/article_id='(.*)'/, "$1");
    
    macpro.pluck.loadWidget({
        'plckRecommendOnKeyType' : "article",
        'plckRecommendOnKey' : id,
        'plckArticleUrl' : document.location,
        'plckRecommendOnUrl' : document.location,
        'plckArticleTitle' : document.title,
        'plckFBLikeAttributes' : "action='recommend' layout='button_count'",
        'container' : $('content_left'),
        'tag' : 'MAC_pluck_reactions_recommend',
        'template' : '/macpro/templates/pluck-recommendations.tmpl',
        'id' : id
    });
    
    macpro.pluck.loadWidget({
        'plckCommentOnKey' : id,        
        'plckItemsPerPage' : 25,
        'plckCommentOnKeyType' : 'article',
        'plckPageRefresh' : 'false',
        'plckArticleTitle' : document.title,
        'container' : $('content_left'),
        'tag' : 'MAC_pluck_comments',
        'template' : '/macpro/templates/pluck-comments.tmpl',
        'id' : id
    });
        
    if ($('recent-discussions')) {
        macpro.pluck.loadRecentDiscussions({
            container: $('recent-discussion-items'),
            template: '/macpro/templates/pluck-discussion.tmpl'
        });
        
    }
    
    if ($('popular-discussions')) {
        macpro.pluck.loadPopularDiscussions({
            container: $('popular-discussion-items'),
            template: '/macpro/templates/pluck-discussion.tmpl'
        });
    }
    
    
    document.observe('discussions:recent', function(event) {
        var args = { container: event.element() };
        generic.templatefactory.get({path: '/macpro/includes/sidebar/discussions_recent.tmpl' }).evaluateCallback({
            object: args,
            callback: function(args, html) {
                args.container.update(html);
                
                macpro.pluck.loadRecentDiscussions({
                    container: $('recent-discussion-items'),
                    template: '/macpro/templates/pluck-discussion.tmpl'
                });
            }.curry(args)
        });
    });
    
});
