//Local Variable with Flash Content id. default = flashcontent
var as_swf_name = "swf";
var sAppURL = "";
var sAppKey = "";
var api;
var friendResult;
var photosResult;
var userResult;
var usersResult;
var oFlash = null;
var isFlashReady = false;
var isLoggedIn = false;
 
//Initialize Facebook
function fbInit(pAsSwfName,pApi_key,pReceiver){
  	as_swf_name = pAsSwfName;
  	FB.init(pApi_key,pReceiver);
}
 
//JavaScript Connect methods
function login(){
  FB.Connect.requireSession(onLoginHandler);
}

function getUserInfo(userId, arrProfileData){
	api.users_getInfo([userId > 0 ? userId : api._session.uid], arrProfileData, function(result, ex){
		userResult = result[0];
		flashCallBack("onUserInfo", userResult);
	});
}

function getUsersInfo(arrUsers, arrProfileData){
	api.users_getInfo(arrUsers, arrProfileData, function(result, ex){
		usersResult = result;
		flashCallBack("onUsersInfo", usersResult);
	});
}

function getFriends(){
	api.friends_get(null, function(result, ex){
		friendResult = result;
		flashCallBack("onFriendsList", friendResult);
	});
}

function getPhotos(albums){
	
	api.photos_get("", albums, "", function(result, ex){ 
		flashCallBack("onPhotos", result);
	});
}

function getAlbums(){
	api.photos_getAlbums(api._session.uid, "", function(result, ex){ 
		flashCallBack("onAlbums", result);
	});
}


function shareLink(link)
{
	FB.Connect.showShareDialog(link);
}

function publishCallback (post_id, exception) 
{ 
	if(post_id) 
	{ 
		flashCallBack("onPublishInfo", post_id);
	}
}

function publishStream(targetid, storytitle, desc, clicklink, img, contact, inputTitle)
{
	var attachment = {'name':storytitle, 'href':clicklink, 'description':desc, 'media':[{'type':'image', 'src':img, 'href':clicklink}]};
	var actionLinks = [{ 'text':contact, 'href':clicklink}];
	FB.Connect.streamPublish('', attachment, actionLinks, targetid, inputTitle, publishCallback);
}

//Event Handlers
function onLoginHandler(){
	api = FB.Facebook.apiClient;
	if(!isLoggedIn)
	{
		isLoggedIn = true;
		flashCallBack( "onLogIn" , api._session);
	}
}

//Method to dispatch an Event to Flash
function flashCallBack ( func ) {
  if( arguments.length > 1 ){
	  //alert("Yo, as_swf_name="+as_swf_name+" func="+func+" param="+Array.prototype.slice.call(arguments).slice(1)[0].length);
    document[as_swf_name][func]( Array.prototype.slice.call(arguments).slice(1)[0]);
  }else{
    document[as_swf_name][func]();
  }
}