var api_key = 'fe3fef268c7e78ca06a6c8173ef32ebd';
var channel_path = 'xd_receiver.html';

var api;
var palindrome;
var connectstatus;
var fbname;

FB_RequireFeatures(["Api"], init);

function init() {
 // Create an ApiClient object, passing app's API key and 
 // a site relative URL to xd_receiver.htm
 FB.Facebook.init(api_key, channel_path);
 
 api = FB.Facebook.apiClient;
 
 FB.Connect.get_status().waitUntilReady(statusReceived);
}

function statusReceived(status) {
 connectstatus = status;
 
 if(status==FB.ConnectState.connected) {
  readUser(); 
 }
}

function login() {
 FB.Connect.requireSession(loginDone, loginCancel, true);
}

function loginDone() {
 readUser();
}

function loginForPost() {
 FB.Connect.requireSession(doPublish, loginCancel, true);
}

function loginCancel() {
}

function readUser() {
 var uid = api.get_session().uid;
 
 var usr = new Array(1);
 usr[0] = uid;

 var fields = new Array();
 fields[0] = "name";
 fields[1] = "birthday";  
        
 api.users_getInfo(usr, fields, userRead);
}

function userRead(uinfo, exception) {
 fbname = uinfo[0]['name'];
}

function publishPost(p) {
 palindrome = p;
 
 if(connectstatus==FB.ConnectState.userNotLoggedIn) {
  loginForPost();
 } else {
  doPublish();
 }
}

function doPublish() {
 var attachment = {
  'media': [{'type':'image',
   'src':'http://www.simainfo.fi/fb_vaakuna_75.jpg',
   'href':'http://www.facebook.com/pages/Sima/58807679231'}],
  'caption': palindrome,
  'description': 'Klikkaa vaakunaa ja ryhdy simafaniksi.',
  'properties': {"Tai tee oma palindromi" : { 'text' :'simainfo.fi', 'href':'http://www.simainfo.fi/'}}
 };

 FB.Connect.streamPublish('taiteili Simainfossa palindromin:', attachment);
}

function getFbName() {
 return fbname;
}


/*******************

function permissionsReceived(perms) {
 if (!perms) {
 } else {
  readUser();
 }
}

function ertser() {
 
 switch(connectstatus) {
  case FB.ConnectState.connected:
   api.users_hasAppPermission("publish_stream", publishPermissionChecked);
   break;

  case FB.ConnectState.appNotAuthorized:
   FB.Connect.showPermissionDialog("publish_stream", permissionsReceived);
   break;

  case FB.ConnectState.userNotLoggedIn:
   loginForPost();
   break;
 } 
}

function publishPermissionChecked(status, exception) {
 if(status) {
  doPublish();
 } else {
  FB.Connect.showPermissionDialog("publish_stream", permissionsReceived);
 }
}

function publishPermissionsReceived(perms) {
 if (!perms) {
 } else {
  doPublish();
 }
}

*********************************/