	var fbSession = null;
	var isFacebook = true;
	var fbApplicationID = 135854919791279;
	
	
	/*
	function isFromFacebook() {
		var ret = false;
		
		var curURI = new URI(window.location.href);
		var curQry = curURI.get('query');
		var params = curQry.split('&');
		//console.log(curURI);
		//console.log(params);

		params.each(function(p) {
			if (p.contains('fb_sig')) {
				ret = true;
			}
		});

		isFacebook = ret;
		return ret;
	} //Onload.add(isFromFacebook);
	*/
	
	
	function fbGetUser() {
		//if (!isFacebook) return;
		
		var query = FB.Data.query('select name, uid from user where uid={0}', fbSession.uid);
		query.wait(function(rows) {
			//currentUserId = rows[0].uid;
			callFacebook('select uid, first_name, last_name, pic_small, pic, pic_big from user where uid='+rows[0].uid, userBack);
			//callFacebook('select user_id from like where object_id=135854919791279', likeBack);
			//callFacebook('select permission_name from permissions where uid='+rows[0].uid, permBack);
		});
	}


	function userBack(data) {
		//if (!isFacebook) return;
		
		$('Player0').set('title', '<img src="' + data[0].pic + '" /><br />' + data[0].first_name + ' ' + data[0].last_name);
		playerToolTips.attach($('Player0')); 
		
		//fbDB = new Database();
		//fbDB.addUser(data[0].uid, 'Facebook');

		currentUserId = new Database().addUser(data[0].uid, 'Facebook');
		
		//console.log('currentUserId: ', currentUserId);
	}
	
	
	function likeBack(data) {
		//if (!isFacebook) return;
	}
	
	
	function permBack(data) {
		//if (!isFacebook) return;
	}
	
	
	function callFacebook(query, callBack) {
		//if (!isFacebook) return;
		
		var webService = 'https://api.facebook.com/method/fql.query?format=json&query=';
		
		// Assemble the url to call
		var jsonUrl = webService + query + '&callback='+callBack;
		new Request.JSONP({
			url: jsonUrl,
		    onComplete: callBack
		}).send();
	}
	
	
	function fbShare() {
		var share = {
			method: 'stream.share',
			u: 'http://crazycribbage.com'
		};

		FB.ui(share, function(response) { 
			//console.log(response); 
		});
	}
	

	function fbPublish(caption, message) {
		if (caption == undefined) {
			var caption = 'Crazy Cribbage';
		}
		
		if (message == undefined) {
			var message = 'Crazy Cribbage';
		}

		FB.ui({
			method: 'stream.publish',
			message: message,
			attachment: {
				name: 'Crazy Cribbage',
				caption: caption,
				description: (
					'The craziest Cribbage game you will find anywhere'
				),
				href: 'http://apps.facebook.com/crazycribbage'
			},
			action_links: [
			    { text: 'Code', href: 'http://apps.facebook.com/crazycribbage' }
			],
			user_message_prompt: 'Share your thoughts about Crazy Cribbage'
		},
		
		function(response) {
			if (response && response.post_id) {
				var dlg = new MavDialog.Alert({
					'title': 'Publish To Facebook',
					'message': 'Your message was successfully published'
				});
			} else {
				var dlg = new MavDialog.Alert({
					'title': 'Publish To Facebook',
					'message': 'Sorry we could not publish your message'
				});
			}
		});
	}
	
	
	function fbMessage(title, message) {
		var dialog = {
			method: 'fbml.dialog',
			fbml: '<fb:header icon="false" decoration="add_border">' + title + '</fb:header>'+message,
			width: 400,
			height: 100
		};
		
		FB.ui(dialog, function(){});	
	}


	function fbInit() {
		if ($('fbCommentsContent') && $('fbCommentButton')) {
			$('fbCommentsContent').makeDraggable();
			
			$('fbCommentsClose').addEvent('click', function(evt) {
				$('fbCommentsContent').hide();
				$('fbCommentButton').show();
			});
			
			$('fbCommentButton').addEvent('click', function(evt) {
				if ($('fbCommentsContent')) $('fbCommentsContent').show();
				$('fbCommentButton').hide();
			});
		//} else {
		//	$('fbCommentButton').hide();
		}
		
		if ($('fbLikesContent') && $('fbLikeButton')) {
			$('fbLikesContent').makeDraggable();
			
			$('fbLikesClose').addEvent('click', function(evt) {
				$('fbLikesContent').hide();
				$('fbLikeButton').show();
			});
			
			$('fbLikeButton').addEvent('click', function(evt) {
				if ($('fbLikesContent')) $('fbLikesContent').show();
				$('fbLikeButton').hide();
			});
			//} else {
			//	$('fbLikeButton').hide();
		}
		
		if ($('fbInviteContent') && $('fbInviteButton')) {
			$('fbInviteContent').makeDraggable();
			
			$('fbInviteClose').addEvent('click', function(evt) {
				$('fbInviteContent').hide();
				$('fbInviteButton').show();
			});
			
			$('fbInviteButton').addEvent('click', function(evt) {
				if ($('fbInviteContent')) $('fbInviteContent').show();
				$('fbInviteButton').hide();
			});
		}

		if ($('fbShareButton')) {
			$('fbShareButton').addEvent('click', function(evt) {
				fbShare();
			}); 
		}
		
		if ($('fbPublishButton')) {
			$('fbPublishButton').addEvent('click', function(evt) {
				fbPublish();
			}); 
		}
		
		if ($('fbBookmarkButton')) {
			$('fbBookmarkButton').addEvent('click', function(evt) {
				FB.ui({ method: 'bookmark.add' }, function() { } );
			}); 
		}
		
		if ($('fbGotoPageButton')) {
			$('fbGotoPageButton').addEvent('click', function(evt) {
				parent.window.location.href='http://www.facebook.com/apps/application.php?id='+fbApplicationID;
			}); 
		}
		
		if ($('fbToolbar')) {
			$('fbToolbar').addEvent('click', function(evt) {
				$('fbToolbarContents').toggle();
			});
		}
		
		if ($('fbToolbar') && $('fbToggleToolbarButton')) {
			$('fbToggleToolbarButton').addEvent('click', function(evt) {
				$('fbToolbar').fireEvent('click');
			});
		}
		



		$('fb-login').addEvent('click', function() {
			FB.login(
				function(response) {
					$('fb-login').hide();
					$('fb-logout').show();
				},
				{ perms: 'offline_access' }
			);
		});
		
		
		$('fb-logout').addEvent('click', function() {
			FB.logout(function(response) {
				$('fb-logout').hide();
				$('fb-login').show();
			});
		});


		FB.getLoginStatus(function(response) {
			if (isFromFacebook()) {
				$('fb-login').hide();
				$('fb-logout').hide();
			} else {
				if (response.status == "connected") {
					$('fb-login').hide();
					$('fb-logout').show();
				} else {
					$('fb-logout').hide();
					$('fb-login').show();
				}
			}
		});


	} Onload.add(fbInit);
	

	function isFromFacebook() {
		var ret = false;
		
		try 
		{
			if (parent.location.href.contains('facebook.com'))
				ret = true;
		}
		catch(e)
		{
			ret = true;
		}

		return ret;
	}

