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

//Initialize Facebook
function fbInit(pAsSwfName,pApi_key,pReceiver){
	
	as_swf_name = pAsSwfName;
	FB.init(pApi_key,pReceiver);
	
}

//JavaScript Connect methods
function login(){


//At some point, you want to ask the user for email permission 
FB.ensureInit(function() { FB.Connect.requireSession( onLoginHandler ); });


}
//Get Facebook Secret Key
function getSecret(){
    return FB.Facebook.apiClient.get_session().secret;
}

//Get Facebook Session Key
function getSessionKey(){
	return FB.Facebook.apiClient.get_session().session_key;
}

function getSession(){
	return FB.Facebook.apiClient.get_session();
}
//Get Facebook Session Key
function getFirstName(){
//return "error";
	//window.alert("get name: " + FB.Facebook.apiClient.get_session().uid);
	//alert("TESTING");
	//var FBFirstName = "error1";
	FB.Facebook.get_sessionState().waitUntilReady(function()
	{
		//window.alert("Session is ready");
//		FB.Facebook.apiClient.users_getInfo(new Array(FB.Facebook.apiClient.get_session().uid), ["name"], function(result, ex){alert(result.length)});//alert(result.length)}});//
        //If you want to make Facebook API calls from JavaScript do something like
       
        var uid = FB.Facebook.apiClient.get_session().uid ;
        var sql = "SELECT first_name FROM user WHERE uid ="+uid;
        FB.Facebook.apiClient.fql_query(sql, function(result, ex) {
            //Do something with result
            var userName= result[0]['first_name'];
			FBFirstName = userName;
			//alert(FBFirstName);
			flashCallBack( "onNameCallback", FBFirstName );
            return FBFirstName;
			
		});
	}
	);
	//return FBFirstName;
	//FBFirstName;
	//FBFirstName = "error";
	//return FBFirstName;
	//flashCallBack( "onNameCallback", FBFirstName );
   
}
//Get Facebook Session Key
function getFullName(){
//return "error";
	//window.alert("get name: " + FB.Facebook.apiClient.get_session().uid);
	//alert("TESTING");
	//var FBFirstName = "error1";
	FB.Facebook.get_sessionState().waitUntilReady(function()
	{
		//window.alert("Session is ready");
//		FB.Facebook.apiClient.users_getInfo(new Array(FB.Facebook.apiClient.get_session().uid), ["name"], function(result, ex){alert(result.length)});//alert(result.length)}});//
        //If you want to make Facebook API calls from JavaScript do something like
       
        var uid = FB.Facebook.apiClient.get_session().uid ;
        var sql = "SELECT name FROM user WHERE uid ="+uid;
        FB.Facebook.apiClient.fql_query(sql, function(result, ex) {
            //Do something with result

			var fullName = result[0]['name'];
			//alert(FBFirstName);
			flashCallBack( "onFullNameCallback", fullName );
            return fullName;
			
		});
	}
	);
	//return FBFirstName;
	//FBFirstName;
	//FBFirstName = "error";
	//return FBFirstName;
	//flashCallBack( "onNameCallback", FBFirstName );
   
}


//Event Handlers
function onLoginHandler(){
	flashCallBack( "onLogIn", FB.Connect.get_loggedInUser() );

FB.Facebook.apiClient.users_hasAppPermission("publish_stream",
            function(result) {
			if(result ==0)
			{
				//alert("no permissions yet");
				 FB.Connect.showPermissionDialog("offline_access,publish_stream", function(perms) {
				   if (!perms) {
					 continue_without_permission();
				   } else {
					 save_session();
				   }
				 });
			}
			else
			{
				//alert('permissions ' + result);

			}
			
});	
	//);
}

function getUserFirstName()
{
return;
	var FBUid = FB.Connect.get_loggedInUser();
	var FBFirstName = FB.Facebook.apiClient.users_getInfo(FBUid,'first_name');
	

}



//Method to dispatch an Event to Flash
function flashCallBack ( func ) {
	if(document[as_swf_name] == null)
	{
		return;
	}
	if(document[as_swf_name][func] == null)
	{
		return;
		window.alert("ERROR");
	}

	if( arguments.length > 1 ){
		document[as_swf_name][func]( Array.prototype.slice.call(arguments).slice(1)[0]);
	}else{
		//window.alert(document[as_swf_name][func]);
		document[as_swf_name][func]();
	}
//*


 //*/
	
}

