// User registeration form
function registerForm(form) {
	var username = form.username;
	var email = form.email;
	var password = form.password;
	var confirm = form.confirm;
	
	// Username field empty
	if(trim(username.value) == "") {
		$(username).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please enter your username.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Email field empty
	} else if(trim(email.value) == "") {
		$(email).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please enter your email.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Password field empty
	} else if(trim(password.value) == "") {
		$(password).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please enter your password.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Confirm field empty
	} else if(trim(confirm.value) == "") {
		$(confirm).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please confirm your password.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Password and confirm values do not match
	} else if (trim(password.value) != trim(confirm.value)) {
		$(password).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
			$(confirm).css('background', '#FFFFFF');
		});
		$(confirm).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
			$(password).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Password and confirm values do not match.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Success!
	} else {
		$.post('/account/registerPost',
			{username: username.value, email: email.value, password: password.value, confirm: confirm.value},
			function(data) {
				if (data == '') {
					document.location = '/account/settings';
					
				} else {
					$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
						$(this).html(data).removeClass('success').addClass('error').fadeIn('slow');
					});
				}
			});
	}
	
	return false;
}

// Forgot password form
function forgotForm(form) {
	var email = form.email;
	
	// Email field empty
	if(trim(email.value) == "") {
		$(email).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please enter your email.').addClass('error').fadeIn('slow');
		});
		return false;
	
	// Success!
	} else {
		$.post('/account/forgotPost',
			{email: email.value},
			function(data) {
				if (data == '') {
					$('#' + form.id + ' :input').val('');
					$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
						$(this).html('A newly generated password has been sent to your email.').removeClass('error').addClass('success').fadeIn('slow');
					});
				} else {
					$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
						$(this).html(data).removeClass('success').addClass('error').fadeIn('slow');
					});
				}
			});
	}
	
	return false;
}

// Update password form
function updatePasswordForm(form) {
	var oldpassword = form.oldpassword;
	var newpassword = form.newpassword;
	var confirm = form.confirm;
	
	// Old password field empty
	if(trim(oldpassword.value) == "") {
		$(oldpassword).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please enter your old password.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
	
	// New password field empty
	} else if(trim(newpassword.value) == "") {
		$(newpassword).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please enter your new password.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Confirm password field empty
	} else if(trim(confirm.value) == "") {
		$(confirm).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Please confirm your password.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
		
	// Confirm password field empty
	} else if(trim(newpassword.value) != trim(confirm.value)) {
		$(newpassword).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$(confirm).css('background', '#FBE3E4').bind('keydown', function(){
			$(this).css('background', '#FFFFFF');
		});
		$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
			$(this).html('Password and confirm values do not match.').removeClass('success').addClass('error').fadeIn('slow');
		});
		return false;
	
	// Success!
	} else {
		$.post('/account/updatePasswordPost',
			{oldpassword: oldpassword.value, newpassword: newpassword.value},
			function(data) {
				if (data == '') {
					$('#' + form.id + ' :input').val('');
					$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
						$(this).html('Password updated!').removeClass('error').addClass('success').fadeIn('slow');
					});
				} else {
					$('#' + form.id).find('.form_msg').fadeOut('slow', function() {
						$(this).html(data).removeClass('success').addClass('error').fadeIn('slow');
					});
				}
			});
	}
	
	return false;
}

// Update notification form
function updateNotificationsForm(form) {
	var notify_vote = (form.notify_vote.checked ? 1 : 0);
	var notify_comment = (form.notify_comment.checked ? 1 : 0);
	var notify_reply = (form.notify_reply.checked ? 1 : 0);
	
	$.post('/account/updateNotificationsPost',
		{notify_vote: notify_vote, notify_comment: notify_comment, notify_reply: notify_reply});
	$('#' + form.id).find('.form_msg').html('Notification settings updated!.').addClass('success').fadeIn('slow');
	
	return false;
}

$(document).ready( function() {	
	
});

