var $t100LoggedIn = false; var $t100UserIdentityID = ''; var $fbLoggedIn = false; var $dbFBUID = ''; var $currentFBUID = ''; function fbPublishStreamReviewProceed(ItemName, ListName, URL, Description) { FB.ensureInit(function() { FB.Connect.streamPublish("", {'name':'I just reviewed ' + ItemName + ' in ' + ListName + ' on TheTop100.net ','href':URL,'description':Description}, null, null, null, null, true, null); }); } function fbPublishStreamReview(ItemName, ListName, URL, Description) { var callback = function() { FB.ensureInit(function() { var api = FB.Facebook.apiClient; FB.Connect.requireSession(function() { var session = api.get_session(); api.users_hasAppPermission('publish_stream',function(hasPermission) { if(!hasPermission){ FB.Connect.showPermissionDialog('publish_stream',function(perms) { if (!perms) { fbPublishStreamReviewProceed(ItemName, ListName, URL, Description) } else { fbPublishStreamReviewProceed(ItemName, ListName, URL, Description) } }); } else { fbPublishStreamReviewProceed(ItemName, ListName, URL, Description) } }); }); }); } requireFacebookConnect( "In order to publish this review to Facebook, you need to connect with Facebook - do so now?", "In order to publish this review to Facebook, you need to link your current The Top 100 alias with Facebook - do so now?", "In order to publish this review to Facebook, you need to connect and link your current The Top 100 alias with Facebook - do so now?", callback); } function requireFacebookConnect(connectmessage, linkmessage, connectandlinkmessage, callbackfunction) { if($t100LoggedIn) { FB.ensureInit(function() { FB.Connect.get_status().waitUntilReady( function( status ) { switch ( status ) { case FB.ConnectState.connected: $fbLoggedIn = true; break; case FB.ConnectState.appNotAuthorized: $fbLoggedIn = false; break; case FB.ConnectState.userNotLoggedIn: $fbLoggedIn = false; break; } }); if($fbLoggedIn) { if($dbFBUID != '') { // User has FBUID in db and logged in with FB - Go ahead and perform action callbackfunction(); } else { // FB LINK PROCESS if(confirm(linkmessage)) { $currentFBUID = FB.Facebook.apiClient.get_session().uid; $dbFBUID = $currentFBUID; ajaxAction("SetCurrentUserIdentityIdFacebookUID", $currentFBUID, null, null, callbackfunction); } } } else { if($dbFBUID != '') { // User has FBUID in db but not logged into facebook - show connect if(confirm(connectmessage)) { FB.Connect.requireSession(function() { callbackfunction(); }); } } else { // User doesn't have FBUID in db and not logged into facebook - show connect (and link $t100UserIdentityID) if(confirm(connectandlinkmessage)) { FB.Connect.requireSession(function() { $currentFBUID = FB.Facebook.apiClient.get_session().uid; $dbFBUID = $currentFBUID; ajaxAction("SetCurrentUserIdentityIdFacebookUID", $currentFBUID, null, null, callbackfunction); }); } } } }); } }