
 
billboard.facebook = new ( function($)  
{

	var me = this;

	me.updateFB = function(msg,desc,ltext,lhref){
		if(!lhref || lhref=="") var lhref=location.href;
		if (billboard.user.fbLoggedIn && FB.Connect.get_loggedInUser() != null) {
			billboard.log("FB Logged In");
			FB.Facebook.apiClient.users_hasAppPermission('publish_stream', function(permissions){
				billboard.log("FB Permissions:"+permissions);
				if(permissions == 1) {
					try {
						FB.Connect.streamPublish(msg,{"name":ltext,"href":lhref,"description":desc},[{"text":"Visit the new Billboard.com","href":"http://www.billboard.com"}],null,null,function(){},true);
						billboard.log("FB Feed Published.");
					} catch (e) {
						billboard.log("FB Publish Error:"+e);
					}
				}						
				
			});
				
		}
		else billboard.log("FB Not Logged IN");
	};
	me.loveSong = function(track,artist){
		billboard.log("love song:"+track);
		me.updateFB("loves "+artist+"'s song \""+track+".\"","","Check it out on Billboard.com");
	};
	me.loveAlbum = function(album,artist){
			billboard.log("love album:"+album);
		me.updateFB("loves "+artist+"'s album \""+album+".\"","","Check it out on Billboard.com");
	};
	me.loveArtist = function(artist){
		billboard.log("love artist:"+artist);
		me.updateFB("loves "+artist+".","","View artist page on Billboard.com");
	};
	me.loveArticle = function(article){
		billboard.log("love article:"+article);
		me.updateFB("loved the Billboard article \""+article+".\"","","Read Story");
	};
	me.hateSong = function(track,artist){
		billboard.log("hate song:"+track);
		me.updateFB("hates "+artist+"'s song \""+track+".\"","","Check it out on Billboard.com");
	};
	me.hateAlbum = function(album,artist){
		billboard.log("hate album:"+album);
		me.updateFB("hates "+artist+"'s album \""+album+".\"","","Check it out on Billboard.com");
	};
	me.hateArtist = function(artist){
		billboard.log("hate artist:"+artist);
		me.updateFB("hates "+artist+".","","View artist page on Billboard.com");
	};
	me.hateArticle = function(article){
		billboard.log("hate article:"+article);
		me.updateFB("hated the Billboard article \""+article+".\"","","Read Story");
	};
	
			// Changed for BBCOM-264
	me.follow = function(users){
		for ( var i=0;i<users.length;i++ ) {
			var user = users[i]; 
			me.updateFB("is following "+user+" on Billboard.com.","","View "+user+"'s Billboard profile",window.location.protocol + "//" + window.location.host + "/user/"+user);
		}
	};
	
	//Ended
	
	me.commentSong = function(comment,artist,track){
		billboard.log("Song comment:"+comment);
		me.updateFB("commented on "+artist+"'s song \""+track+"\"",comment,"View song page on Billboard.com");
	};
	me.commentAlbum = function(comment,artist,album){
		billboard.log("Album comment:"+comment);
		me.updateFB("commented on "+artist+"'s album \""+album+"\"",comment,"View album page on Billboard.com");
	};
	me.commentArticle = function(comment,article){
		billboard.log("Article comment:"+comment);
		me.updateFB("commented on the Billboard article \""+article+"\"",comment,"Read Story");
	};
	me.commentColumn = function(comment,article,author){
		billboard.log("Column comment:"+comment);
		me.updateFB("commented on "+author+"'s Billboard column \""+article+"\"",comment,"Read Column");
	};
	me.startConversation = function(convo,artist){
		billboard.log("Started conversation:"+convo);
		me.updateFB("started a conversation about "+artist+" on Billboard",convo,"View Conversation");
	};
	me.commentConversation = function(comment,subject,artist){
		billboard.log("Conversation comment:"+comment);
		me.updateFB("responded to the conversation \""+subject+"\" about "+artist+" on Billboard",comment,"View Full Conversation");
	};
	me.startChartgame = function(){
		billboard.log("Started playing the chart game");
		me.updateFB("is playing The Chart Game on Billboard.com","","Find out more");
	};
	me.updateSoyl = function(desc){
		billboard.log(desc);
		me.updateFB("has made an update on Soundtrack of My Life",desc,"View "+billboard.user.username+"'s soundtrack",window.location.protocol + "//" + window.location.host + "/soyl/list/"+billboard.user.username);
	};
	me.loveHate = function(section,el){
		var charttype = $("#chart-type-fb").text();
		var name = el ? el.parents("div.units").find("h2").text() : '';
		var track = charttype && charttype=='Singles' ? name : $("#track-name-fb").text();
		var artist = charttype ? el.parents("div.units").find("h3").text() : $("#artist-name-fb").text();
		var album = charttype && charttype=='Albums' ? name : $("#album-name-fb").text();
		var article = $("#article-name-fb").text();
		
		if(track && artist && track!="" && artist!=""){
			if(section == "love") me.loveSong(track,artist);
			else me.hateSong(track,artist);
		}
		else if(album && artist && album!="" && artist!=""){
			if(section == "love") me.loveAlbum(album,artist);
			else me.hateAlbum(album,artist);
		}
		else if(artist && artist!=""){
			if(section == "love") me.loveArtist(artist);
			else me.hateArtist(artist);
		}
		else if(article && article!=""){
			if(section == "love") me.loveArticle(article);
			else me.hateArticle(article);
		}
	};
	me.comment = function(el,el2){
		var track = $("#track-name-fb").text();
		var artist = $("#artist-name-fb").text();
		var album = $("#album-name-fb").text();
		var article = $("#article-name-fb").text();
		var author = $("#columnist-name-fb").text();
		el = "\""+el+"\"";

		if($("#section").text()=='artists' && $("#subsection").text()=='song') me.commentSong(el,artist,track);
		else if($("#section").text()=='artists' && ($("#subsection").text()=='album' || $("#subsection").text()=='review')) me.commentAlbum(el,artist,album);
		else if($("#section").text()=='news' && $("#subsection").text()=='article') me.commentArticle(el,article);
		else if($("#section").text()=='news' && $("#subsection").text()=='column-article') me.commentColumn(el,article,author);
		else if($("#section").text()=='artists' && $("#subsection").text()=='conversations') me.commentConversation(el,el2,artist);
	};
	me.conversation = function(el){
		var artist = $("#artist-name-fb").text();
		me.startConversation( "\""+el+"\"",artist);
	}
	me.publish = function(section,el,el2){
		billboard.log("Facebook Publish:"+section);

		if(section=="love" && billboard.user.fbPublishFavorites) me.loveHate("love",el);
		else if(section=="hate" && billboard.user.fbPublishFavorites) me.loveHate("hate",el);
		else if(section=="follow" && billboard.user.fbPublishActivities) me.follow(el);
		else if(section=="comment" && billboard.user.fbPublishComments) me.comment(el,el2);
		else if(section=="conversation" && billboard.user.fbPublishComments) me.conversation(el);
		else if(section=="start-chartgame" && billboard.user.fbPublishWinGame) me.startChartgame();
		else if(section=="soyl" && billboard.user.fbPublishSoyl) me.updateSoyl(el);
	};
	
})(jQuery);
