/* Facebook
 * ----------------------------------------------------------------------------------- *
 * Facebook Connect Functions
 * Version: 1.0 
 * Created: 03/18/09
 * Developer: Thorsten Kober (thorsten@avatarlabs.com)
 * Agency: AvatarLabs, Inc
 * ----------------------------------------------------------------------------------- */

/* global variables
 * ----------------------------------------------------------------------------------- */

	var api_key = "4e3ac1a6761f8a4aed1c0b13e3d09370";
	var xd_receiver = "http://17againmovie.com/connect/xd_receiver.htm";
	var version = "1.0";
	
	var session = null;
	var sessionId = null;
	var userId = null;
	
	var swfName = "seventeenagain";
	
	//var templateId = 62261841525;
	var templateId = 63025606525;
	
	var templateId2 = 81303841120;
	
	var connected = false;


/* Facebook specific functions
 * ----------------------------------------------------------------------------------- */

 /* connection handlers */
	function fbConnect()
	{
		if(!connected)
		{
			FB_RequireFeatures(["XFBML"], function()
			{
			  FB.init(api_key, xd_receiver,
					  {"ifUserConnected":onConnected, "ifUserNotConnected":onNotConnected} ); 
			  
			  FB.Facebook.get_sessionState().waitUntilReady(function()
			  {
					var session = FB.Facebook.apiClient.get_session();
					sessionId = session.session_key; 
					userId = session.uid;
					thisMovie(swfName).showSessionInfo(sessionId, userId);
			  }); 
		  });
		}
		else
		{
			onConnected();	
		}
	}

	function onConnected(user_id)
	{
		connected = true;
		thisMovie(swfName).connectionHandler();
		thisMovie(swfName).traceMessage("onConnected: user is connected");
	}
	
	function onNotConnected()
	{
		FB.Connect.requireSession();
		thisMovie(swfName).traceMessage("onNotConnected: user is not connected");
	}
	
	function fbLogout()
	{
		FB.Connect.logout(function()
		{
			thisMovie(swfName).loggedOut();	
			session = null;
			sessionId = null;
			userId = null;
			
			connected = false;
		});
		
	}

 /* retrieving information */
	function fbUserInfo(_user)
	{
		FB_RequireFeatures(["XFBML"], function()
			{
				var user = _user;
				var info = ["first_name", "last_name", "pic_square"];
							
				var query = FB.Facebook.apiClient.users_getInfo(user, info, function(result, ex)
				{
					thisMovie(swfName).showUser(result);	
				});
			});
	}
	
	function fbFriends()
	{
		FB_RequireFeatures(["XFBML"], function()
			{
				FB.Facebook.apiClient.friends_get(null, function(result, ex) 
				{
					var info = ["first_name", "last_name", "pic_square", "name", "uid"]
					var query = FB.Facebook.apiClient.users_getInfo(result, info, function(result, ex)
					{
						thisMovie(swfName).showFriends(result);	
					});
				});
			});
	}
	
 /* send notification */
	function fbSendNotification( _message, _receiver)
	{
		FB_RequireFeatures(["XFBML"], function()
			{
				var message = _message;
				
				var receiver = _receiver;
					
				FB.Facebook.apiClient.notifications_send(receiver, message, function(result, ex)
					{
						thisMovie(swfName).handleNotificationSend(result);
					});
			});
	}

 /* post news feed */
	function fbPostFeed(_message, _receiver)
	{
		FB_RequireFeatures(["XFBML"], function()
		{
				var template_bundle_id = templateId;
				var template_data = {"message":_message};	
				
				var body_general = "";
				
				var target_ids  = [_receiver];
				
				//sizes: 1 (one line), 2 (short), or 4 (full);
				var size = null;		
				
				//RequireConnect.doNotRequire, RequireConnect.require, or RequireConnect.promptConnect
				//var require_connect = "RequireConnect.promptConnect";
				
				var user_message_prompt = "would you like to add some more?";
				var user_message = {value:"add your thoughts here"};
				
				/*FB.ensureInit(function()
				{
					var connected = FB.Connect.showFeedDialog(template_bundle_id, template_data, target_ids, body_general, size, require_connect, function()
					{
						thisMovie(swfName).handleFeedSent();
					}, user_message_prompt, user_message); 
				});*/
				
				FB.ensureInit(function()
				{
					var connected = FB.Connect.showFeedDialog(template_bundle_id, template_data, target_ids, body_general, size, FB.RequireConnect.promptConnect, function()
					{
						// this callback kept firing in flash and was breaking site.
						//thisMovie(swfName).handleFeedSent();
					}, null, null); 
				});
		});
	}
	
	function fbPostToUser(_message)
	{
		FB_RequireFeatures(["XFBML"], function()
		{
				var template_bundle_id = templateId2;
				//var template_data = {"message":_message};	
				var template_data = {"images":[{"src":"http://17againmovie.com/files/images/image.jpg", "href":"http://17againmovie.com"}], "message":_message};	
				var size = FB.FeedStorySize.shortStory;
				var require = FB.RequireConnect.require;
				
				var user_message_prompt = "Would you like to add some more comments about the 17 Again Flashback Quiz?";
				var user_message = {value:"Add your comments here"};
				
				FB.ensureInit(function()
				{
					var connected = FB.Connect.showFeedDialog(template_bundle_id, template_data, null, null, size, require, null, user_message_prompt, user_message);
				});
		});
	}

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