
/*
 * The facebook_onload statement is printed out in the PHP. If the user's logged in
 * status has changed since the last page load, then refresh the page to pick up
 * the change.
 *
 * This helps enforce the concept of "single sign on", so that if a user is signed into
 * Facebook when they visit your site, they will be automatically logged in -
 * without any need to click the login button.
 *
 * @param already_logged_into_facebook  reports whether the server thinks the user
 *                                      is logged in, based on their cookies
 *
 */
function facebook_onload(already_logged_into_facebook) {
  // user state is either: has a session, or does not.
  // if the state has changed, detect that and reload.
  FB.ensureInit(function() {
      FB.Facebook.get_sessionState().waitUntilReady(function(session) {
          var is_now_logged_into_facebook = session ? true : false;

          // if the new state is the same as the old (i.e., nothing changed)
          // then do nothing
          if (is_now_logged_into_facebook == already_logged_into_facebook) {
            return;
          }

          // otherwise, refresh to pick up the state change
          window.location = '';
        });
    });
}

/*
 * Our <fb:login-button> specifies this function in its onlogin attribute,
 * which is triggered after the user authenticates the app in the Connect
 * dialog and the Facebook session has been set in the cookies.
 */
function facebook_onlogin_ready( base_url ) {
  // In this app, we redirect the user back to index.php. The server will read
  // the cookie and see that the user is logged in, and will deliver a new page
  // with content appropriate for a logged-in user.
  //
  // However, a more complex app could use this function to do AJAX calls
  // and/or in-place replacement of page contents to avoid a full page refresh.
  //refresh_page();
  
  FB.ensureInit(function() {
	  window.location = base_url;
  });
}

function facebook_onlink_ready( base_url ) {
	FB.ensureInit(function() {
		window.location = base_url;
	});
}

/*
 * Do a page refresh after login state changes.
 * This is the easiest but not the only way to pick up changes.
 * If you have a small amount of Facebook-specific content on a large page,
 * then you could change it in Javascript without refresh.
 */
function refresh_page() {
  window.location = 'fbconnect/login';
}

/*function facebook_onlogin_ready() {  
  FB.ensureInit(function() {
       FB.Facebook.get_sessionState().waitUntilReady(function(session) {
           var is_now_logged_into_facebook = session ? true : false;           
           if (is_now_logged_into_facebook) {
             var form = document.getElementById('hhs-fbconnect-autoconnect-form');
             if (form) {
               form.submit();
             }
           }
       });
   });
}*/

function facebook_logout( base_url )
{
	FB.ensureInit(function(){
		FB.Connect.logout( function(){ window.location=base_url+'/logout'; } );
	});
}

function facebook_share( url )
{
	FB.ensureInit(function(){
		FB_RequireFeatures(["Api"], function(){
			FB.Facebook.apiClient.users_hasAppPermission('share_item', function(result){
				if( result )
				{
					FB.Connect.showShareDialog( url );
				}
				else
				{
					FB.Connect.showPermissionDialog('share_item', function(){
						FB.Connect.showShareDialog( url );
					});
				}
			})
			
		});
	});
}

function facebook_share_window( u, t ) 
{ 
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),' sharer', 'toolbar=0, status=0, width=626, height=436');
} 

/*
 * Prompts the user to grant a permission to the application.
 */
function facebook_prompt_permission(permission) {
  FB.ensureInit(function() {
    FB.Connect.showPermissionDialog(permission);
  });
}

function facebook_prompt_email_permission() {
  FB.ensureInit(function() {
    FB.Connect.showPermissionDialog('email');
  });
}

function facebook_publish_registration(accepted) {
  FB.ensureInit(function() {
          FB.Connect.showFeedDialog(81978365760);
  });
}

function facebook_handle_registration( form_bundle_id ) {
  FB.ensureInit(function() {
          FB.Connect.showFeedDialog(form_bundle_id, null, null, null, FB.FeedStorySize.oneLine, FB.RequireConnect.require, function(){} );
  });
}

/*
 * Show the feed form. This would be typically called in response to the
 * onclick handler of a "Publish" button, or in the onload event after
 * the user submits a form with info that should be published.
 *
 */
function facebook_publish_feed_story(form_bundle_id, template_data) {
  // Load the feed form
  FB.ensureInit(function() {
          FB.Connect.showFeedDialog(form_bundle_id, template_data);
          //FB.Connect.showFeedDialog(form_bundle_id, template_data, null, null, FB.FeedStorySize.shortStory, FB.RequireConnect.promptConnect);

      // hide the "Loading feed story ..." div
     // ge('feed_loading').style.visibility = "hidden";
  });
}
