var checkingUsername = false;

var AjaxUsernameCheck = 
{
	handleSuccess: function(o)
	{
		// o.responseText
		// o.responseXML
		//console.log(o.responseText);
		checkingUsername = false;
		this.processResult(o);
	},
	handleFailure: function(o)
	{
		// o.responseText
		// o.responseXML
		checkingUsername = false;
	},
	processResult: function(o)
	{
		try
		{
			var data = YAHOO.lang.JSON.parse(o.responseText);
		}
		catch (e)
		{
			// Error in JSON data!
		}
		
		if (typeof(data) == "undefined")
		{
		}
		else
		{
			//console.log(data,1);
			
			if (data.valid)
			{
				if (data.available)
				{
					document.getElementById("usernameAvailable").style.display = 'block';
				}
				else
				{
					document.getElementById("usernameInUse").style.display = 'block';
				}
			}
			else
			{
				document.getElementById("usernameInvalid").style.display = 'block';
			}
		}
	},
	startRequest: function(username)
	{
		if (!checkingUsername)
		{
			document.getElementById("usernameInvalid").style.display = 'none';
			document.getElementById("usernameInUse").style.display = 'none';
			document.getElementById("usernameAvailable").style.display = 'none';
			
			//console.log("checking '"+username+"'...");
			
			YAHOO.util.Connect.asyncRequest('GET', '/ajax/username.php?username='+escape(username), usernameCheckCallback);
			
			checkingUsername = true;
		}
		else
		{
			//console.log("check already in progress");
		}
	}
};

var usernameCheckCallback = {
	success: AjaxUsernameCheck.handleSuccess,
	failure: AjaxUsernameCheck.handleFailure,
	scope: AjaxUsernameCheck
};

function checkUsername()
{
	if (document.forms['signupForm'].username)
	{
		username = document.forms['signupForm'].username.value;
		//console.log("username="+username);
		
		if (username)
		{
			AjaxUsernameCheck.startRequest(username);
		}
	}
	
	return false;
}
