// User login form
function loginCheck(form) {
	var username = form.username.value;
	var password = form.password.value;
	
//	// All fields empty
//	if(trim(username) == "" && trim(password) == "") {
//		$('.login_username').css('border-color', '#8A1F11');
//		$('.login_password').css('border-color', '#8A1F11');
//		$('.login_error').fadeOut('slow', function() {
//			$(this).html('Please fill in all fields.').fadeIn('slow')
//		});
//		return false;
	
	// Username field empty
//	} else
	if(trim(username) == "") {
		$('.login_username').css('border-color', '#8A1F11');
		$('.login_error').fadeOut('slow', function() {
			$(this).html('Please enter your username.').fadeIn('slow')
		});
		return false;
	
	// Password field empty
	} else if(trim(password) == "") {
		$('.login_password').css('border-color', '#8A1F11');
		$('.login_error').fadeOut('slow', function() {
			$(this).html('Please enter your password.').fadeIn('slow')
		});
		return false;
	
	// Success!
	} else {
		$.post('/actions/user-login.php',
			{username: username, password: password},
			function(data) {
				if (data == 'fail') {
					$('.login_error').fadeOut('slow', function() {
						$(this).html('Invalid username/password.').fadeIn('slow')
					});
					return false;
					
				} else {
					document.location = data;
				}
			});
	}
	
	return false;
}

// User registration form
function registerCheck(form) {
	var username = form.username.value;
	var email = form.email.value;
	var password = form.password.value;
	var confirm = form.confirm.value;
	
//	// All fields empty
//	if(trim(username) == "" && trim(email) == "" && trim(password) == "" && trim(confirm) == "") {
//		$('.register_username').css('border-color', '#8A1F11');
//		$('.register_email').css('border-color', '#8A1F11');
//		$('.register_password').css('border-color', '#8A1F11');
//		$('.register_confirm').css('border-color', '#8A1F11');
//		$('.register_error').fadeOut('slow', function() {
//			$(this).html('Please fill in all fields.').fadeIn('slow')
//		});
//		return false;
	
	// Username field empty
//	} else
	if(trim(username) == "") {
		$('.register_username').css('border-color', '#8A1F11');
		$('.register_error').fadeOut('slow', function() {
			$(this).html('Please enter your username.').fadeIn('slow')
		});
		return false;
	
	// E-mail field empty
	} else if(trim(email) == "") {
		$('.register_email').css('border-color', '#8A1F11');
		$('.register_error').fadeOut('slow', function() {
			$(this).html('Please enter your e-mail.').fadeIn('slow')
		});
		return false;
	
	// Password field empty
	} else if(trim(password) == "") {
		$('.register_password').css('border-color', '#8A1F11');
		$('.register_error').fadeOut('slow', function() {
			$(this).html('Please enter your password.').fadeIn('slow')
		});
		return false;
	
	// Confirm field empty
	} else if(trim(confirm) == "") {
		$('.register_confirm').css('border-color', '#8A1F11');
		$('.register_error').fadeOut('slow', function() {
			$(this).html('Please confirm your password.').fadeIn('slow')
		});
		return false;
	
	// Password and confirm values do not match
	} else if (trim(password) != trim(confirm)) {
		$('.register_password').css('border-color', '#8A1F11');
		$('.register_confirm').css('border-color', '#8A1F11');
		$('.register_error').fadeOut('slow', function() {
			$(this).html('Password and confirm values do not match.').fadeIn('slow')
		});
		return false;
	
	// Success!
	} else {
		$.post('/actions/user-register.php',
			{username: username, email: email, password: password},
			function(data) {
				
				// Invalid e-mail
				if (data == 'fail_email') {
					$('.register_error').fadeOut('slow', function() {
						$(this).html('Invalid e-mail address.').fadeIn('slow')
					});
					return false;
				
				// Invalid password
				} else if (data == 'fail_password') {
					$('.register_error').fadeOut('slow', function() {
						$(this).html('Password must be at least 8 characters long.').fadeIn('slow')
					});
					return false;
				
				// Username and/or e-mail already exists
				} else if (data == 'fail_exists') {
					$('.register_error').fadeOut('slow', function() {
						$(this).html('Username and/or e-mail is already in use.').fadeIn('slow')
					});
					return false;
				
				// Successful registration!
				} else {
					$('.register_username').css('border-color', '#264409').attr('disabled', 'disabled');
					$('.register_email').css('border-color', '#264409').attr('disabled', 'disabled');
					$('.register_password').css('border-color', '#264409').attr('disabled', 'disabled');
					$('.register_confirm').css('border-color', '#264409').attr('disabled', 'disabled');
					$('.register_error').fadeOut('slow', function() {
						$('.register_success').html('Thanks for joining!<br />Please log in.').fadeIn('slow');
					});
					return false;
				}
			});
	}
	
	return false;
}

// Forgot password form
function retrieveCheck(form) {
	var email = form.email.value;

	// E-mail field empty
	if(trim(email) == "") {
		$('.retrieve_email').css('border-color', '#8A1F11');
		$('.retrieve_error').fadeOut('slow', function() {
			$(this).html('Please enter your e-mail.').fadeIn('slow')
		});
		return false;
	
	// Success!
	} else {
		$.post('/actions/user-retrieve.php',
			{email: email},
			function(data) {
				
				// Invalid e-mail
				if (data == 'fail_email') {
					$('.retrieve_error').fadeOut('slow', function() {
						$(this).html('Invalid e-mail address.').fadeIn('slow')
					});
					return false;
				
				// E-mail doesn't exist
				} else if (data == 'fail_exists') {
					$('.retrieve_error').fadeOut('slow', function() {
						$(this).html('Sorry, this e-mail address does not exist.').fadeIn('slow')
					});
					return false;
				
				// Successful e-mail retrieval
				} else {
					$('.retrieve_email').css('border-color', '#264409').attr('disabled', 'disabled');
					$('.retrieve_error').fadeOut('slow', function() {
						$('.retrieve_success').html('Success! Your username and a new password has been sent to this e-mail address.').fadeIn('slow');
					});
					return false;
				}
			});
	}
	
	return false;
}

// White Space!!!
function trim(s){
	return s.replace(/^\s*(.*?)\s*$/,"$1");
}

