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

var allOkFunc; //for the create_task process

function doBindCreateUserForm() {
	var username_available = false;
	var checkUsername = function() {
		var value = $("#create_username").val();
		if (value.length < 2) {
			setStatus($("#create_username_status"), "error", "Minimum er 2 bogstaver", value);
			return false;
		}
		if (value.length > 12) {
			setStatus($("#create_username_status"), "error", "Maximum er 12 bogstaver", value);
			return false;
		}
		var valid_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
		for (var i = 0; i < value.length; i++) {
			var c = value.charAt(i);
			if (valid_chars.indexOf(c) == -1) {
				setStatus($("#create_username_status"), "error", "Ugyldigt brugernavn", value);
				return false;
			}
		}
		jQuery.post('/check_username_available', {username: value}, function(data) {
			if (data.success) {
				setStatus($("#create_username_status"), "success", "VALUE er fri", value);
				username_available = true;
			} else {
				setStatus($("#create_username_status"), "error", "VALUE er ikke tilr\u00E5dighed", value);
				username_available = false;
			}
		}, 'json');
		return true;

	};
	$("#create_username").keyup(checkUsername);
	var checkPassword = function() {
		var value = $("#create_password").val();
		if (value.length < 5) {
			setStatus($("#create_password_status"), "error", "Minimum er 5 bogstaver", value);
			return false;
		}
		setStatus($("#create_password_status"), "success", "Ok", value);
		return true;
	};
	$("#create_password").keyup(checkPassword);

	var checkRepassword = function() {
		var value = $("#create_repassword").val();
		if (value.length < 5) {
			setStatus($("#create_repassword_status"), "error", "Minimum er 5 bogstaver", value);
			return false;
		}
		var value2 = $("#create_password").val();
		if (value == value2) {
			setStatus($("#create_repassword_status"), "success", "Ok", value);
			return true;
		} else {
			setStatus($("#create_repassword_status"), "error", "De to kodeord er forskellige", value);
			return false;
		}
	};
	$("#create_repassword").keyup(checkRepassword);

	var email_not_used = false;
	var checkEmail = function() {
		var value = trim($("#create_email").val());
		if (!isValidEmail(value)) {
			setStatus($("#create_email_status"), "error", "Ugyldig email", value);
			return false;
		}

		jQuery.post('/check_email_not_used', {email: value}, function(data) {
			if (data.success) {
				setStatus($("#create_email_status"), "success", "Ok", value);
				email_not_used = true;
			} else {
				setStatus($("#create_email_status"), "error", 'Email addressen findes allerede. <a class="link" href="/lost-password">Glemt dit password?</a>', value);
				email_not_used = false;
			}
		}, 'json');
		return true;
	};
	$("#create_email").keyup(checkEmail);

	allOkFunc = function() {
		return username_available & checkUsername() & checkPassword() & checkRepassword() & email_not_used & checkEmail();
	};
	
	$("#create_form").submit(function() {
		var all_ok = allOkFunc();
		if (all_ok) {
			var email = trim($("#create_email").val());
			jQuery.post('do_register', {username: $("#create_username").val(), password: $("#create_password").val(), email: email}, function(data) {
				if (data.success) {
					location.href = "/activate?email="+email;
				} else {
					checkUsername();
				}
			}, 'json');
		}
		return false;
	});
}



