var xxx = {};
xxx.query = jQuery.noConflict(true);

(function($) {
 
var plugin = Echo.createPlugin({
    "name": "LinkAvatarNameDate",
    "applications": ["Stream"],
    "init": function(plugin, application) {
        if (application instanceof Echo.Stream) {
            plugin.extendRenderer("Item", "authorName", plugin.renderers.Item.authorName); 
            plugin.extendRenderer("Item", "avatar", plugin.renderers.Item.avatar);
            plugin.extendRenderer("Item", "date", plugin.renderers.Item.date);
        }
    }
});
 
plugin.renderers = {"Item": {}}; 
 
plugin.renderers.Item.authorName = function(element, dom) {
    var item = this;
    var name = item.parentRenderer("authorName", arguments);
    
    if ((item.data.source && item.data.source.name == "Twitter") || 
    	    (item.data.source && item.data.source.name == "Facebook")){
    return '<a target="_blank" href="' + item.data.actor.id + '">' + name + '</a>'; 
    	    }
    return name;
    
};

plugin.renderers.Item.avatar = function(element, dom) {
    var item = this;
    var image = item.parentRenderer("avatar", arguments);
    
	if ((item.data.source && item.data.source.name == "Twitter") || 
	    (item.data.source && item.data.source.name == "Facebook")){
	return '<a target="_blank" href="' + item.data.actor.id + '"><img src="' + image.attr('src') + '" style="'+image.attr('style')+'"/></a>'; 
	}
	
	return image;
};

plugin.renderers.Item.date = function(element, dom) {
    var item = this;
    item.calcAge();
    var container = element || this.dom && this.dom.get("date");
	if (container) {
		if ((item.data.source && item.data.source.name == "Twitter") || 
	    (item.data.source && item.data.source.name == "Facebook")){
		container.html('<a target="_blank" href="'+item.id+'">'+this.age+'</a>');
	    }else{
	    	  container.html(this.age);  
	    }
	}
};
 
})(xxx.query);

