//Local Variable with Flash Content id. default = flashcontent
var as_swf_name = "flashcontent";

function log(value)
{
	alert(value);
}

//JavaScript Connect methods
function fbLogin(api_key)
{
	FB.init(api_key, rootDomain+'xd_receiver.htm', {"ifUserConnected":permissions});
	FB.ensureInit(function() {
		FB.Connect.get_status().waitUntilReady(function(status) {
			switch (status) {
				case FB.ConnectState.connected:
					loggedIn = true;
					
					break;
				
				case FB.ConnectState.appNotAuthorized:
				case FB.ConnectState.userNotLoggedIn:
					FB.Connect.requireSession();
					loggedIn = false;
			}
		});
	});
		
}

function permissions(){
	FB.Connect.showPermissionDialog('read_stream,publish_stream,photo_upload',onLoginHandler);
};

function fbLogout()
{
	FB.Connect.logout(onLogoutHandler);
}

//share with FB.streamPublish
function fbShare(name, message, imageURL, siteURL)
{
	var attachment = {
		'name' : name,
		'description' : message,
		'href' : siteURL,
		'media':[{'type':'image','src':imageURL, 'href' : siteURL}]
	};
	FB.Connect.streamPublish('', attachment, null, null, '', onShareHandler);
}

//Event Handlers
function onLoginHandler()
{
	var session = FB.Facebook.apiClient.get_session();
	flashCallBack( "onLogin", session);
}

function onLogoutHandler()
{
	flashCallBack( "onLogOut" );
}

function onShareHandler()
{
	flashCallBack( "onShare" );
}

//Method to dispatch an Event to Flash
function flashCallBack (method)
{
	//log(method);
	if( arguments.length > 1 )
		thisMovie(as_swf_name)[method]( Array.prototype.slice.call(arguments).slice(1)[0]);
	else
		thisMovie(as_swf_name)[method]();
}

//
function thisMovie(movieName)
{
	if (navigator.appName.indexOf("Microsoft") != -1)
		return window[movieName];
	else
		return document[movieName];
}

window.log = function(){
	log.history = log.history || [];   // store logs to an array for reference
	log.history.push(arguments);
	if(this.console){
		console.log( Array.prototype.slice.call(arguments) );
	}
};
