function initialize()
{
	Event.observe($('register_form'), 'submit', register);
}

function register(event)
{
	Event.stop(event);
	
	removeErrors();
	var params = $('register_form').serialize(true);
	$('register_form').disable();
	$('info_note').innerHTML = "Submitting registration data...";
	
	$('register_form').request
	({
		method: 'post',
		parameters: params,
		onComplete: function(transport)
		{
			var json = transport.responseText.evalJSON();
			if (json.success)
				showSuccess();
			else
				showErrors(json.errors);
		},
		onFailure: function()
		{
			$('info_note').innerHTML = "An internal error occurred during registration! Please try again later.";
			$('register_form').enable();
		}
	});
}

function removeErrors()
{
	var fields = ['login', 'first_name', 'last_name', 'password', 'email'];
	for (var i = 0; i < fields.length; i++)
	{
		$(fields[i]).style.backgroundColor = null;
  		$(fields[i] + "_error").innerHTML = "";
	}
	$("password_confirm").style.backgroundColor = null;
}

function showSuccess()
{
	$('info_note').innerHTML = "Registration successful, confirmation email sent!";
}

function showErrors(errors)
{
	$('register_form').enable();
	$('info_note').innerHTML = "Some fields are invalid or missing!";
	
	for (var i in errors)
	{
		$(i).style.backgroundColor = "#ffe0e0";
		$(i + "_error").innerHTML = errors[i];
		
		if (i == 'password')
			$("password_confirm").style.backgroundColor = "#ffe0e0";
	}
}
