
var lastTyped = false;
var isAvailable = false;
var timeout = false;

function setUnavailable() {
	$('#username').addClass('taken');
	$('#username').removeClass('available');
	$('#signup-link').hide();
}
function setAvailable() {
	isAvailable = true;
	$('#username').addClass('available');
	$('#username').removeClass('taken');
	timeout = setTimeout(maybeShowSignup, 450);
}

function resetAvailable() {
	$('#username').removeClass('taken');
	$('#username').removeClass('available');
	$('#signup-link').hide();
}

function initiateSignup() {
	window.location = '/signup/from/learn/?username=' + encodeURIComponent($('#username').val());
}

function maybeShowSignup() {
	if(isAvailable) {
		$('#signup-link').slideDown('slow');
	}
}

function learningCheckUsername(el) {

	if(lastTyped == $(el).val())
		return;
	else
		lastTyped = $(el).val();

	isAvailable = false;
	clearTimeout(timeout);

	if($(el).val().length < 3) {
		resetAvailable();
		return;
	}


	$.getJSON('/api/username.available',
		{ username: $(el).val()},
		function(data) {
			if(data.content == true)
				setAvailable();
			else
				setUnavailable();

		}
	);
}