
function fbc(){
	this.initialize = function( appid, receiver) {
		this.appid = appid;
		this.receiver = receiver;
		this.fbInit();
	};
	this.fbInit = function() {
		FB.Facebook.init( this.appid, this.receiver, {doNotUseCachedConnectState:true} );
	};
	this.fbReady = function( callback, option, optional ) {
		FB.Facebook.get_sessionWaitable().waitUntilReady(function() {
			this.fb_sess = FB.Facebook.apiClient.get_session();
			FB.Facebook.apiClient.users_getInfo( this.fb_sess['uid'], new Array('name'), function(result,ex){
				this.fb_user = result;
				try {
					this.fb_user = this.fb_user[0];
					if( this.fb_user.uid ) {
						if( callback ) {
							switch( callback ) {
								case 'fbLoginOrRegister':
									fbc.fbLoginOrRegister();
								break;
								case 'fbShareLink':
									fbc.fbShareLink( option, optional );
								break;
								case 'fbFriends':
									fbc.fbFriends();
								break;
								case 'fbLogout':
									fbc.fbLogout();
								break;
							}
						}
						return true;
					} else {
						return false;
					}	
				} catch( e ) {}
			});
		});
	},
	this.fbLoginOrRegister = function() {
		jQuery.post( '/fb', {'action':'loginOrRegister'}, function(){}, "script" );
	};
	this.fbShareLink = function( id, cid ) {
		jQuery.post( '/fb&action=shareLink', {}, function(data){
		    fbc.fbShareLink( data );
		}, "json" );
	};
	this.fbFriends = function() {
		jQuery('#fb_friend_finder').load( '/fb', {'action':'fbFriends'} );
	};
	this.fbShareLink = function( data ) {
		try{
			retval = FB.Connect.showFeedDialog(data.bundle, data.template);
		} catch( e ) { 
		    console.log("ERROR!");
		    console.log( e );
		}
	};
	this.fbLogout = function() {
		FB.Connect.logout( function() {
		});
	};
}

function redrawFBML()
{
	FB.Bootstrap.requireFeatures(["XFBML"], function() {
		FB.XFBML.Host.parseDomTree();
	});
}


