var facebookConnect = (function () {
	// result codes
	// 0 - success
	// 1 - permission not granted
	// 2 - login canceled/failed
	// 3 - api call canceled/failed
	
	var appID = '110087109046999';
    
    function facebookPublishDialog(message, description, caption, imageUrl, actionLinkText, actionLinkUrl, promptMessage, resultFunction) {
		FB.ui( 
			{
				method: 'stream.publish',
				message: message,
				display: 'popup',
				attachment: {                                    
					name: promptMessage,
					caption: caption,
					description: description,
					href: actionLinkUrl,
					media: [{
							type: 'image',
							src: imageUrl,
							href: actionLinkUrl
						}]
				},
				action_links: [{ 
					text: actionLinkText, 
					href: actionLinkUrl 
				}]
            },
            resultFunction
        );
    };
	
    return {
    	init: function() {
	    	FB.init({appId: appID, status: true, cookie: true, xfbml: true});
    	},
    	
    	publish: function( params ) {
    		var swf = document.getElementById('flashContent'); 			

	    	facebookPublishDialog( params.message, params.description, params.caption, params.imageUrl, params.actionLinkText, params.actionLinkUrl, params.promptMessage,
				function (response) {
					var published = response != null && response.post_id != null;
					swf.publishResult({success: published, id: (published ? 0 : 3)});
				}
			);
    	}
    };
}());
