$( document ).ready( function() {

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

		return false;
	});

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

		return false;
	});

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

		return false;
	});

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

// Login/Sign-Up
function handleSessionResponseConnect(response) {
	if (!response.authResponse) {
		return;
	}

	FB.api( '/me', function( user ) {
		var data = {};

		data['action'] = 'fbconnect';
		data['uid'] = data['fb_uid'] = user.id;
		data['name'] = ( user.name ? user.name : '' );
		data['username'] = ( user.username ? user.username : '' );
		data['email'] = ( user.email ? user.email : '' );
		data['pic'] = 'http://graph.facebook.com/' + user.username + '/picture';
		data['pic_big'] = 'http://graph.facebook.com/' + user.username + '/picture?type=large';

		$.ajax({
			url: '/users/',
			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.authResponse ) {
		return;
	}
	
	FB.api( '/me', function( user ) {
		// console.log( user );
		var data = {};

		data['uid'] = (user.id ? user.id : '');
		data['action'] = 'fbaddconnect';
		data['name'] = (user.name ? user.name : '');
		data['username'] = (user.username ? user.username : '');
		data['email'] = (user.email ? user.email : '');
		data['pic'] = 'http://graph.facebook.com/' + user.username + '/picture';
		data['pic_big'] = 'http://graph.facebook.com/' + user.username + '/picture?type=large';

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

// Remove connect
function handleSessionResponseRemoveConnect(response) {
	if (!response.authResponse) {
		return;
	}
	
	FB.api( '/me', function( user ) {
		var data = {};

		data['action'] = 'fbdisconnect';
		data['uid'] = user.id;

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