var global_facebook_username;
var nl_opt_in_value = "checked";
var tnc_agree_value = "";
var email_value = ""; 

$(document).bind("login_bar_loaded", null, function(){
	$(".facebook-connect-login").click(fbConnectFunc);
	$('#logout_link').click(function(){
		FB_RequireFeatures(["Connect"],
			function(){
				FB.init(DT.FBConnect.apiKey, "/xd_receiver.html");
				FB.Connect.ifUserConnected(
					function(){ FB.Connect.logoutAndRedirect('/logout/'); },
					function(){ window.location = '/logout/' }
				);
			}
		)
		return false;
	});
}
);

var fbConnectFunc = function(){
	FB_RequireFeatures(["Connect"], function(){
		FB.init(DT.FBConnect.apiKey, "/xd_receiver.html");
		FB.Connect.requireSession();
        FB.Facebook.get_sessionState().waitUntilReady(
            function(s) {
                $.getJSON('/ajax/check_credentials/?type=facebook', function(u){
					if (!u.has_account) {
						global_facebook_username = u.username;
						jQuery.facebox( string_new_account() );
					} else {
						window.location='/extlogin/?type=facebook';
					}
            	});
            }
        )
	})
};

function string_new_account(error_message) {
	facebook_username = global_facebook_username;
	var new_account = [
		'<div id="facebook_connect">',
		'	<h2 class="title">Last step...</h2>', 
		error_message, 

		'	<div class="form_row">',
		'		<label for="facebook_username">Choose a LIVE<strong>STRONG</strong> username:</label>',
		'		<input type="text" class="text" id="facebook_username" name="username" value="'+facebook_username+'" />', 
		'	</div>',

		'	<div class="form_row">',
		'		<label for="facebook_email">Enter Email Address:</label>',
		'		<input type="text" class="text" id="facebook_email" name="email" value="'+email_value+'" />', 
		'	</div>',

		'	<div class="form_row">',
		'		Already a LIVE<strong>STRONG</strong>.COM user?',
		'		<a href="#" onclick="$.facebox(string_link_account()); return false;">Link your Facebook account</a>', 
		'	</div>',

		'	<div class="form_row flc">',
		'		<input name="nl_opt_in" id="nl_opt_in" type="checkbox" '+nl_opt_in_value+' class="checkbox" />',
		'		<p class="desc">Sign up to receive the weekly health and fitness newsletter.</p>',
		'	</div>',

		'	<div class="form_row flc">',
		'		<input name="tnc_agree" id="tnc_agree" type="checkbox" '+tnc_agree_value+' class="checkbox" />',
		'		<p class="desc">I have read, understood and agree to the <a target="_blank" href="/privacy-policy/">Privacy Policy</a> and <br /><a target="_blank" href="/terms/">Terms & Conditions</a> of LIVE<strong>STRONG</strong>.COM</p>',
		'	</div>',

		'	<div class="form_row">',
		'		<input type="submit" value="submit" onclick="return checkUser(true);" class="button button_2" />',
		'	</div>',
		'</div>'
	].join('');		
	return(new_account);
}

function string_link_account(error_message) {

	facebook_username = global_facebook_username;

	var link_account = [
		'<div id="facebook_connect">',
		'	<h2 class="title">Link your existing LIVESTRONG.COM account</h2>', 
		error_message, 
		'	<div class="form_row">',
		'		<label for="facebook_username" style="width: 160px;">LIVE<strong>STRONG</strong> Username:</label>',
		'		<input type="text" class="text" id="facebook_username" name="username" value="'+facebook_username+'" />', 
		'	</div>',
		'	<div class="form_row">',
		'		<label for="facebook_password" style="width: 160px;">LIVE<strong>STRONG</strong> Password:</label>',
		'		<input type="password" class="text" id="new_password" name="new_password"/>', 
		'	</div>',
		'	<div class="form_row">',
		'		Not a LIVE<strong>STRONG</strong>.COM member? ',
		'		<a href="#" onclick="$.facebox(string_new_account()); return false;">Create a new account</a>', 
		'	</div>',
		'	<div class="form_row">',
		'		<input type="submit" value="submit" onclick="return checkUser(false);" class="button button_2" />',
		'	</div>',
		'</div>'
	].join('');
	return(link_account);
}

function string_successful(message) {
	var yay_account = [
		'<div id="facebook_connect">',
		'	<h2 class="title">'+message+'</h2>', 
		'</div>'
	].join('');
	return(yay_account);
}

function checkUser(registerUser)
{
	nl_opt_in_value = $('#nl_opt_in').attr("checked") == true ? "checked" : "";
	tnc_agree_value = $('#tnc_agree').attr("checked") == true ? "checked" : "";
	email_value = $('#facebook_email').val();
	global_facebook_username = $('#facebook_username').val();

	var fields = {
		username: $('#facebook_username').val(),
		email: $('#facebook_email').val(),
		new_password: $('#new_password').val(),
		nl_opt_in:$ ('#nl_opt_in').attr("checked"),
		tnc_agree: $('#tnc_agree').attr("checked"),
		register: registerUser ? 1 : 0,
		type: 'facebook'
	};
	$.post('/ajax/validate_new_user/', fields, function(data){

		if (data.no_tnc_agree){
			var error_message = [
				'	<div class="form_row error">',
				'		<p>You are required to agree to our terms and conditions.</p>', 
				'	</div>',
			].join('');

			jQuery.facebox( string_new_account(error_message) );
		}

		if (data.invalid_username){
			var error_message = [
				'	<div class="form_row error">',
				'		<p>Invalid username.</p>', 
				'	</div>',
			].join('');
			jQuery.facebox( string_new_account(error_message) );
		}

		if (data.bad_email_address){
			var error_message = [
				'	<div class="form_row error">',
				'		<p>Invalid email address.</p>', 
				'	</div>',
			].join('');
			jQuery.facebox( string_new_account(error_message) );
		}

		if (data.has_username){
			var error_message = [
				'	<div class="form_row error">',
				'		<p>This username has already been taken</p>', 
				'	</div>',
			].join('');

			jQuery.facebox( string_new_account(error_message) );
		}

		if (data.blank_email){
			var error_message = [
				'	<div class="form_row error">',
				'		<p>Email field cannot be blank</p>', 
				'	</div>',
			].join('');

			jQuery.facebox( string_new_account(error_message) );
		}

		if (data.has_email){
			var already_associated = [
				'<div id="facebook_connect">',
				'	<h2 class="title">This email address has already been associated to a LIVESTRONG account.</h2>', 
				'</div>'
			].join('');
			jQuery.facebox( already_associated );
		}

		if (data.already_associated){
			var already_associated = [
				'<div id="facebook_connect">',
				'	<h2 class="title">This account has already been associated with a facebook user</h2>', 
				'</div>'
			].join('');
			jQuery.facebox( already_associated );
		}

		if (data.register_success){
			message = 'Congratulations! You have successfully registered.';
			jQuery.facebox( string_successful(message) );
			window.location = '/extlogin/?type=facebook';
		}

		if (data.associated_success){
			message = 'Congratulations! Your LIVESTRONG account has been successfully linked with Facebook.';
			jQuery.facebox( string_successful(message) );
			window.location = '/extlogin/?type=facebook';
		}

		if (data.associated_success == 0){
			var error_message = [
				'	<div class="form_row error">',
				'		<p>Invalid username/ password combination</p>', 
				'	</div>'
			].join('');
			jQuery.facebox( string_link_account(error_message) );
		}

	}, 'json');
	return false;
}


