$( document ).ready( function() {

	$( '#fb-login' ).click( function() {
		FB.login( handleSessionResponseConnect, { perms: 'email' } );

		return false;
	});

	$( '#fb-add-connect' ).click( function() {
		FB.login( handleSessionResponseAddConnect, { perms: 'email' } );

		return false;
	});

	$( '#fb-disconnect' ).click( function() {
		FB.login( handleSessionResponseRemoveConnect );
	
		return false;
	});
});

// Login/Sign-Up
var ajax = false;

function handleSessionResponseConnect(response) {
	if (!response.session) {
		return;
	}

	FB.api(
		{
			method: 'fql.query',
			query: 'SELECT name, pic_square, pic_big, username FROM profile WHERE id=' + FB.getSession().uid
		}, function( response ) {
			var user = response[0];
			var data = {};

			data['action'] = 'fbconnect';
			data['uid'] = data['fb_uid'] = FB.getSession().uid;
			data['name'] = ( user.name ? user.name : '' );
			data['username'] = ( user.username ? user.username : '' );
			data['email'] = '';
			data['pic'] = user.pic_square;
			data['pic_big'] = user.pic_big;
			data['session_key'] = FB.getSession().session_key;

			$.ajax({
				url: '/members/profile/',
				type: 'POST',
				data: data,
				dataType: 'json',
				success: function(data){
					if( data.logged ) {
						if( !data.unactivated )
							window.location = data.url;
						else 
							window.location = "/login/";
					} else {
						window.location = "/signup/fbconnect:1/";	
					}
					try {
					} catch(e){};
				}
			});
		}
	);
}

// Add connect
function handleSessionResponseAddConnect(response) {
	if (!response.session) {
		return;
	}

	FB.api(
		{
			method: 'fql.query',
			query: 'SELECT name, pic_big FROM profile WHERE id=' + FB.getSession().uid
		}, function( response ) {
			var user = response[0];
			var data = {};

			data['action'] = 'fbaddconnect';
			data['uid'] = FB.getSession().uid;
			data['pic_big'] = user.pic_big;
			data['session_key'] = FB.getSession().session_key;

			$.ajax({
				url: '/members/profile/',
				type: 'POST',
				data: data,
				dataType: 'json',
				success: function( data ) {
					document.location = '/members/profile/';
				}
			});
		}
	);
}

// Remove connect
function handleSessionResponseRemoveConnect(response) {
	if (!response.session) {
		return;
	}

	var data = {};

	data['action'] = 'fbdisconnect';
	data['uid'] = FB.getSession().uid;

	$.ajax({
		url: '/members/profile/',
		type: 'POST',
		data: data,
		dataType: 'json',
		success: function( data ) {
			document.location = '/members/profile/';
		}
	});
}
