function fbcIsLoggedIn(){
	var status = FB.Connect.get_loggedInUser();
	return (status) ? true : false;
}

function fbcLoginSuccess(){
	window.location = '/fbconnect/profile';
}

function fbcPostMissionStatus(message, title, avatar_url){
	
	var data = {
		'media': [{
			'type':		'image',
			'src':		avatar_url,
			'href':		'http://www.callofduty.com/missions'
		}],
		'caption': '{*actor*} just '+ message +' the "'+ title +'" mission on callofduty.com!'
	};

	FB.Facebook.apiClient.users_hasAppPermission('status_update', function(allowed){
		if(allowed){
			fbcPublishToWall(data);
		}else{
			FB.Connect.showPermissionDialog('status_update', function(allowed){
				if(allowed){
					fbcPublishToWall(data);
				}else{
					alert('You must grant permission to update your Facebook status before you can post Call of Duty: World at War updates to your Wall.');
				}
			});
		}
	});
}

var fbc_queue_timer = false;
function fbcQueueAction(func, timer){
	var func_string = func +'(';

	for(var i=2; i < arguments.length; i++){
		func_string += "'"+ arguments[i] +"'";
		if(i < (arguments.length - 1)){
			func_string += ", ";
		}
	}

	func_string += ')';

	fbc_queue_timer = setTimeout(func_string, timer);
}

function fbcPostIntelComment(id, title, message, avatar_url){
	if(fbc_queue_timer){
		clearTimeout(fbc_queue_timer);
	}
	
	var data = {
		'media': [{
			'type':		'image',
			'src':		avatar_url,
			'href':		'http://www.callofduty.com/intel/'+ id
		}],
		'caption': '{*actor*} commented on '+ title +' "'+ message +'"'
	};

	FB.Facebook.apiClient.users_hasAppPermission('status_update', function(allowed){
		if(allowed){
			fbcPublishToWall(data);
		}else{
			FB.Connect.showPermissionDialog('status_update', function(allowed){
				if(allowed){
					fbcPublishToWall(data);
				}else{
					alert('You must grant permission to update your Facebook status before you can post Call of Duty: World at War updates to your Wall.');
				}
			});
		}
	});
}

function fbcPublishToWall(data){
	FB.Connect.streamPublish('', data);
}