

// NOTE: This script must be included in the body

STF_FB.appId = "192677397457034";
STF_FB.perms = "email,publish_stream";
		
STF_FB.login = function STF_FB_login(server, controller) {	
	
	var callbacks = {
		didLogin: function(response) {			
			if (response.authResponse) {
				window.location = "https://" + server + "/" + controller + "?state=LoggingIntoSTF&access_token=" + response.authResponse.accessToken;
			}
			else {
				window.location = "https://" + server + "/" + controller + "?state=Finished&error=fb+login+failed";
			}
		},
			
		gotLoginStatus: function(response) {
			if (response.authResponse) {
				window.location = "https://" + server + "/" + controller + "?state=LoggingIntoSTF&access_token=" + response.authResponse.accessToken;
			}
			else {
				FB.login(callbacks.didLogin, {scope: STF_FB.perms});					
			}
		}	
	}
	
	FB.getLoginStatus(callbacks.gotLoginStatus);
}

STF_FB.getUserData = function STF_FB_getUserData(callback) {

	var callbacks = {
		
		didLogin: function(login_response) {			
			if (login_response.authResponse) {
				FB.api('/me?fields=first_name,last_name,email', function(api_response) {callback(api_response, login_response.authResponse.accessToken);});				
			}
			else {
				callback();
			}
		},
			
		gotLoginStatus: function(status_response) {
			if (status_response.authResponse) {
				FB.api('/me?fields=first_name,last_name,email', function(api_response) {callback(api_response, status_response.authResponse.accessToken);});
			}
			else {
				FB.login(callbacks.didLogin, {scope: STF_FB.perms});					
			}
		}	
	}
	
	if (callback) {
		FB.getLoginStatus(callbacks.gotLoginStatus);		
	}

}

function STF_FB() {	
	window.fbAsyncInit = function() {
		FB.init({
			appId      : STF_FB.appId,
			status     : true, 
			cookie     : true,
			xfbml      : true,
			oauth      : true,
			channelURL : '//www.sendthisfile.com/login/facebook_channel.jsp'
		});			
	}; 
	
	(function(d) {
		var fbdiv, id = 'fb-root'; if (d.getElementById(id)) {return;}
		var executingScript = d.getElementById('stf-fb-init-script');
		fbdiv = d.createElement('div'); fbdiv.id = id;
		executingScript.parentNode.insertBefore(fbdiv, executingScript);		
	}(document));	
		
	(function(d){
	   var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
	   js = d.createElement('script'); js.id = id; js.async = true;
	   js.src = "//connect.facebook.net/en_US/all.js";
	   d.getElementsByTagName('head')[0].appendChild(js);
	}(document));			 
}

new STF_FB();

