function chkUsername()
{
	var e = $('#username');
	
	if(e.val().length > 12 || e.val().indexOf(' ') != -1 || e.val().indexOf('@') != -1)
	{
		mngResult(e,false,'Has to be fewer than 12 characters -- no spaces or emails please')
		return;
	}
	if(e.val().length == 0)
	{
		mngResult(e,false,'This is a required field.')
		return;
	}
	
	$.getJSON(base_dir+'users/chkUsername/username/'+e.val()+'/json',
	function(json){mngResult(e,json.success,'This username is already in use.')});
}

function chkEmail()
{
	var e = $('#email');
	var regex = /^[\w\-\.]+@[\w\-\.]+\.[a-z]{2,}$/i;
	if(e.val().length == 0)
	{
		mngResult(e,false,'This is a required field.')
		return;
	}
	else if(e.val().match(regex) == null)
	{
		mngResult(e,false,'This email address is not valid.');
		return;
	}
	
	$.getJSON(base_dir+'users/chkEmail/email/'+e.val()+'/json',
	function(json){mngResult(e,json.success,'This email address is already in use.')});
}

function chkPhone()
{
	var e = $('#phone')
	var phone = e.val()
	if(phone == '') // if phone has been cleared
	{
		mngResult(e,true,'')
		return false
	}
	
	var verified = chkPhoneNumber(phone)
	if(!verified)
	{
		mngResult(e,false,'This phone number does not appear to be valid.')
		return false
	}
	else
	{
		e.val(verified)
		mngResult(e,true,'')
	}
}

function chkPw()
{	
	var e = $('#pw')
	
	// clear any blank pw errors, from bad submissions
	e.siblings().remove("span");
	e.css('border','1px solid #999999');
	
	if(e.val().match(/[\W_]+/) != null) mngResult(e,false,'Passwords can only include letters and numbers.');
}

function confPws()
{
	var pw = $('#pw');
	var e = $('#confirm');	

	var res = true;
	if(pw.val() != e.val())
		res = false;
	
	mngResult(e,res,'Your passwords do not match.');
}

function mngResult(elem,res,errMsg)
{
		elem.siblings().remove("span");
		if(res)
			elem.css('border','1px solid #999999');
		else
		{
			elem.css('border','1px solid red');
			elem.parent().append("<span class='error'><table cellspacing='0' cellpadding='0'><tr><td height='52' valign='middle'>"+errMsg+"</td></tr></table></span>");
		}
}

function chkForErrs(chkReq)
{
	if(chkReq) chkRequired()
	
	/**
	  * if there are errors, return false and send modal popup
	  */
  	var errors = $("span.error");
	if(errors.length > 0)
	{
		makePopUp("Whoops!", "There are some errors on the form. Please check for error messages under fields marked in red as well as required fields.")
		return false
	}
	
	if(chkReq) $("#signupForm").submit()
	else return true
}

function chkRequired()
{	
	if($('#terms:checked').val() == null)
		$('#terms').parent().append("<span class='error'>You must confirm your age to register for our site.</span>")
	else
		$('#terms').siblings().remove("span")
	
	// Check for blank req'd fields
	var blanks = new Array();
	if($.trim($('#username').val()) == '') blanks.push('username');
	if($.trim($('#email').val()) == '') blanks.push('email');
	if($.trim($('#pw').val()) == '') blanks.push('pw');
	
	if(blanks.length > 0)
	{
		for(i=0;i<blanks.length;i++)
			mngResult($('#'+blanks[i]),false,'This is a required field.');
	}
}