function fbCheck() {
	FB.ensureInit(function() {
		FB.Connect.get_status().waitUntilReady( function( status ) {
			switch ( status ) {
				case FB.ConnectState.connected:
					if (fbButtonState() == 'login') updateLogin()
					break;
				case FB.ConnectState.appNotAuthorized:
				case FB.ConnectState.userNotLoggedIn:
					if (fbButtonState() == 'logout') updateLogin();
					break;
			}
		});
	});
}

function fbButtonState() {
	if (!!$('RES_ID_fb_login_text')) {
		return $('RES_ID_fb_login_text').hasClassName('LoginButton') ? 'login' : $('RES_ID_fb_login_text').hasClassName('LogoutButton') ? 'logout' : false;
	}
	return false;
}

function fbRegister() {
	(new Phing.Cookie()).create('regboxShow', 1, 0);
}

function fbLoadBumpButton(id) {
	if (!!$('facebook-phing-bump') && !!id) {
		if (!$('facebook-phing-bump-button')) {
			new Ajax.Updater({ success: 'facebook-phing-bump' }, '/facebook/bumpbutton/' + id, {
				asynchronous: true,
				evalScripts: false,
				onComplete: function() { fbCheckBumpButton(id); }
			});
		} else {
			fbCheckBumpButton(id);
		}
	} 
}

function fbCheckBumpButton(id) {
	if (!!$('facebook-phing-bump') && !!id) {
		if (!!$('facebook-phing-bump-button')) {
			FB.ensureInit(function() {
				FB.Connect.get_status().waitUntilReady( function( status ) {
					if (status != FB.ConnectState.userNotLoggedIn) {
						$('facebook-phing-bump-button').show().observe( 'click', function(e) {
							e.stop();
							FB.Facebook.apiClient.users_hasAppPermission('publish_stream', function(s) {
								if (!!s) {
									//got permission, can continue to bump and publish
									window.location = '/facebook/bump/' + id;
								} else {
									//no permission yet, ask permission
									FB.Connect.showPermissionDialog('publish_stream', function(s) {
										//got permission or not, nevermind, just bump
										window.location = '/facebook/bump/' + id;
									});
								}
							});
						} );
						$('facebook-phing-bump-info').show();
					} else {
						$('facebook-phing-bump-button').hide();
						$('facebook-phing-bump-info').hide();
					}
				});
			});
		}
	}
}

if (typeof(initFB)!='undefined') initFB();
