function requireFbLogin( scroll ) {
	FB.login( require_fb_login, { perms: 'email' } );
	return;
}

function getFBUserDataRedirect() {
	FB.login( get_fb_user_data_redirect, { perms: 'email' } );
	return;
}

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

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

		data['action'] = 'fbconnect';

		$.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){};
			}
		});
		
		return false;
	});
}

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

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

		data['action'] = 'fbconnect';

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

function format_facebook_data( user ) {
	var data = new Object();

	data['action'] = 'fbconnect';
	data['uid'] = FB.getSession().uid;
	data['fb_uid'] = FB.getSession().uid;
	data['name'] = user.name;
	data['email'] = user.email;
	data['birthdat_data'] = false;
	data['pic_big'] = 'http://graph.facebook.com/' + user.username + '/picture?type=large';
	data['pic'] = 'http://graph.facebook.com/' + user.username + '/picture';
	data['username'] = user.username;
	if( user.shop_slug != null ) {
		data['shop_name'] = user.shop_name;
		data['shop_slug'] = user.shop_slug;
	}
	
	return data;
}

function formFBData( result ) {
	var data = new Object();
	data['action'] = 'fbconnect';
	data['uid'] = fbSession.uid;
	data['name'] = result[0]['name'];
	data['email'] = result[0]['email'];
	data['birthdat_data'] = result[0]['email'];
	data['pic_big'] = result[0]['pic_big'];
	data['pic'] = result[0]['pic'];
	data['username'] = result[0]['username'];
	if( result[0]['current_location'] != null ) {
		data['city'] = result[0]['current_location']['city'];
		data['country'] = result[0]['current_location']['country'];
		data['postcode'] = result[0]['current_location']['zip'];
	}
	return data;
}
