Event.observe(window, 'load', function()	{
	$('submitter').onclick = check_register;
	clean_text_nodes($('reg_form'));
	$('user_name').onchange = check_name;
	$('email').onchange = check_email;	
}, false);

function check_name()	{
	if(this.value.length < 4)	{
		this.nextSibling.innerHTML = 'Name must be at least 4 characters.';	
		this.nextSibling.style.visibility = 'visible';
		return 0;
	}
	
	this.nextSibling.innerHTML = '<img src="images/ajax-loader.gif"/>';
	this.nextSibling.style.visibility = 'visible';
	
	var myAjax = new Ajax.Request(
	'services/process_register.php',
	{
		method: 'post', 
		parameters: 'action=check_name&name=' + this.value, 
		onComplete: report_name
	});		
}

function check_email()	{
	this.nextSibling.innerHTML = '<img src="images/ajax-loader.gif"/>';
	this.nextSibling.style.visibility = 'visible';
	
	var myAjax = new Ajax.Request(
	'services/process_register.php',
	{
		method: 'post', 
		parameters: 'action=check_email&email=' + this.value, 
		onComplete: report_email
	});		
}

function report_email(ajax)	{
	$('email').nextSibling.innerHTML = ajax.responseText;
	if(ajax.responseText == 'This email works.')
		$('email').nextSibling.style.visibility = 'hidden';
		
	var reg_form = $('user_name').parentNode.parentNode;
	reg_form.lastChild.lastChild.disabled = false;
}

function report_name(ajax)	{
	$('user_name').nextSibling.innerHTML = ajax.responseText;
	if(ajax.responseText == 'This name works.')
		$('user_name').nextSibling.style.visibility = 'hidden';
		
	var reg_form = $('user_name').parentNode.parentNode;
	reg_form.lastChild.lastChild.disabled = false;
}

function check_register()	{
	var register_form = this.parentNode.parentNode;
	var user_inputs = register_form.getElementsByTagName('input');
	var name_ok = false;
	var email_ok = false;
	var over_18 = $('over_18').checked;
	var terms = $('terms').checked;
	if(user_inputs[0].nextSibling.innerHTML == '<img src="images/ajax-loader.gif"/>')	{
		this.disabled = true;
	}
	
	if(user_inputs[0].value.length < 4)	{
		user_inputs[0].nextSibling.innerHTML = 'Name must be at least 4 characters.';
		user_inputs[0].nextSibling.style.visibility = 'visible';	
		user_inputs[0].focus();
		return false;
	}
	
	if(user_inputs[1].value != user_inputs[2].value || user_inputs[2].value.length < 6)	{
		user_inputs[1].nextSibling.style.visibility = 'visible';	
		user_inputs[2].nextSibling.style.visibility = 'visible';
		user_inputs[1].focus();
		return false;
	}
	
	if($('user_name').nextSibling.innerHTML == '<img src="images/ajax-loader.gif"/>')	{
		return false;	
	}
	if($('user_name').nextSibling.innerHTML == 'You are using unacceptable characters in your username.')	{
		user_inputs[0].focus();
		return false;	
	}
	if($('user_name').nextSibling.innerHTML == 'This name is already taken!!')	{
		alert('Select a different user name.');
		user_inputs[0].focus();
		return false;	
	}
	if($('user_name').nextSibling.innerHTML == 'This name works.')	{	
		name_ok = true;
	}

	if($('email').nextSibling.innerHTML == '<img src="images/ajax-loader.gif"/>')	{
		alert('Checking email.  Submit again when it\'s done.');
		return false;	
	}
	if($('email').nextSibling.innerHTML == 'This email works.')	{	
		email_ok = true;
	}
	else	{
		alert('Enter a valid e-mail and agree to the Terms and Conditions.  You will not be able to use divanee until you have done so.');	
		return false;
	}

	if(!over_18)	{
		alert('You must confirm that you are 18 years old.');
		$('over_18').focus();
		return false;	
	}

        if(!terms)	{
		alert('You must agree to the Terms and Conditions.');
		$('terms').focus();
		return false;	
	}
	
	if(email_ok && name_ok)	{
		this.disabled = true;
		register_form.submit();	
	}
}