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

//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 grantExtendedPermission(){
	FB.Connect.showPermissionDialog( onLoginHandler );
}

//Event Handlers

function onLoginHandler(){
	
	
	FB.Facebook.apiClient.users_hasAppPermission("user_photos", function(result1){
		
		FB.Facebook.apiClient.users_hasAppPermission("publish_stream", function(result2){

			FB.Facebook.apiClient.users_hasAppPermission("offline_access", function(result3){

				   if(result1 == 0 || result2 == 0 || result3 == 0)
						FB.Connect.showPermissionDialog("user_photos, publish_stream, offline_access", onGrantPermissionHandler);
					else 
						flashCallBack("onLogIn");
			})
			
			
		})
		
	});	
	

}


function onPermissionHandler(result){
	
	if (result != 0)
		flashCallBack("onLogIn");
	else 
		FB.Connect.showPermissionDialog("user_photos, publish_stream, offline_access", onGrantPermissionHandler);

	
}

function onGrantPermissionHandler(result){
	flashCallBack("onLogIn");
}



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


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