var doNameCheck, lastTry;
var checkNameMsg, regName;

function showUsernameBox(status){

	switch(status){
	
		case(-1): // checking...
			checkNameMsg.innerHTML = "Checking availability of <strong>" + regName.value + "</strong>&hellip;";
			checkNameMsg.className = 'standby';
			break;
			
		case(0): // failwhale
			checkNameMsg.innerHTML = "No dice. <strong>" + regName.value + "</strong> is taken. Pick another name.";
			checkNameMsg.className = 'nodice';
			break;
		
		case(1): // success
			checkNameMsg.innerHTML = "<strong>" + document.getElementById('regName').value + "</strong> is available. Booyah!";
			checkNameMsg.className = 'booyah';
			break;
			
		/* case(2): // invalid format
			checkNameMsg.innerHTML = "No crazy characters! Letters, numbers, and '_' only, please.";
			checkNameMsg.classNAme = 'nodice';
			break; */
			
		default: // ?
			//
			checkNameMsg.innerHTML = "Possible error?";
			checkNameMsg.className = 'standby';
			break;
	
	}
}


function checkName(){

	// 'loading' message...
	showUsernameBox(-1);
	
	$.get("checkname.php", { name: regName.value }, function(data){
	
		if(data=='OK'){ 	// sweet! available!
			showUsernameBox(1);
		} else  {			// that bitch is taken!
			showUsernameBox(0);
		}
	 }, "text");
		
}

function hideUsernameBox(){
	checkName.className = 'hidden';
}

$(document).ready(function() {
	
	// create element
	checkNameMsg = document.createElement('span');
	checkNameMsg.className = 'hidden';
	checkNameMsg.id = 'checkNameMsg';
	
	// insert 
	regName = document.getElementById('regName');
	regName.parentNode.insertBefore(checkNameMsg, regName.nextSibling);
	
	// attach event for regName onkeyup
	$('#regName').keyup(function(){
		if(this.value==lastTry) return;
		if(this.value.length<1||this.value.length>16) return;
		if(this.value!=''){
			// no repeats, yo
			lastTry = this.value;
			clearTimeout(doNameCheck);
			// chills out for a tick before checking the username
			doNameCheck = setTimeout("checkName()", 650);
		} else {
			hideCheckNameMsg();
		}
	});
	
});