var email = 0;
var publish_stream = 0;

function facebook_prompt_permission(callbackFunc) {
  // callbackFunc -> show_dialog
  fuid = FB.Facebook.apiClient.get_session().uid;
  $.getJSON('/is_facebook_user/' + fuid,
	    function(data){
	      var is_facebook_user = data['is_user'];
	      if(is_facebook_user == 'false'){
		// check is user already granted for this permission or not
		// maybe the user is not in our database but he has our app accepted,
		// so, we don't show the dialog
		FB.Facebook.apiClient.users_hasAppPermission("email",
							     function(result) {
							       email = result;
							     });

		FB.Facebook.apiClient.users_hasAppPermission("publish_stream",
							     function(result) {
							       publish_stream = result;
							       callbackFunc();
							     });
	      }else{
		// the user is already registered on listuc
		finish_facebook_login();
	      }
	    }
	   );
}

function show_dialog() {
  if(email == 0 && publish_stream == 0) {
    permission = "email,publish_stream";
  }
  else if(publish_stream == 0) {
    permission = "publish_stream";
  }
  else if(email == 0) {
    permission = "email";
  }

  if (email == 0 || publish_stream == 0){
    FB.Connect.showPermissionDialog(permission, finish_facebook_login);
  }
  else {
    finish_facebook_login();
  }
}

function finish_facebook_login() {
  document.forms["login"].submit();
  return true;
}
