$(document).ready(function() {
	
	/**
	 * check via ajax if this email address exists
	 */
	$('#email-input').blur(function(ev) {
		$('#emailExistsErrorMessage').remove();
		if (ev.target.value.length > 0) {
			$.ajax({ 
				url: "/json/check-email?email="+ev.target.value, 
				success: function(r){
					if (r['userId'] > 0) {
						$('#email-input').after('<span id=\"emailExistsErrorMessage\" style=\"color: firebrick; white-space:nowrap;\"> Email already exists.</span>');
					}
		      	}
			});
		}
		
	});
	
	/**
	 * check via ajax if this username is taken
	 */
	$('#username-input').blur(function(ev){
		$('#userNameTakenErrorMessage').remove();
		if (ev.target.value.length > 0) {
			$.ajax({ 
				url: "/json/check-username?userName="+ev.target.value, 
				success: function(r){
					if (r['userId'] > 0) {
						$('#username-input').after('<span id=\"userNameTakenErrorMessage\" style=\"color: firebrick; white-space:nowrap;\"> That username is taken.</span>');
					}
		      	}
			});
		}
	});
	
	/**
	 * validate the form before submitting it
	 */
	$('#join-button').click(function(ev) {
		var message = new String("");
		var filter = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test($('#email-input').val())) {
			ev.preventDefault();
			message = 'Please provide a valid email address.\n';
		}
		
		if ($('#username-input').val().length == 0) {
			ev.preventDefault();
			message += 'Username is required.\n';
		}
		
		if ($('#password-input').val().length == 0) {
			ev.preventDefault();
			message += 'Password is required.\n';
		}
		
		if (message.length > 0) {
			alert(message);
		}
	});
});
