/**
 * /ajax/register.js
 *
 * Dragonea (http://www.dragonea.com)
 *
 * @author Jejem <jejem@phyrexia.org>
 * @copyright Jérémy 'Jejem' Desvages
**/

var check_login = false;
var check_password = false;
var check_password_confirm = false;
var check_email = false;
var check_godfather = false;
var check_accept_termsofuse = false;

Event.observe(window, 'load', function() {
	check_login = false;
	check_password = false;
	check_password_confirm = false;
	check_email = false;
	check_godfather = true;
	check_accept_termsofuse = false;

	Event.observe('register_login', 'change', function() {
		checkLogin();
		checkSubmit();
	});

	Event.observe('register_password', 'change', function() {
		checkPassword();
		checkPasswordConfirm();
		checkSubmit();
	});

	Event.observe('register_password_confirm', 'change', function() {
		checkPassword();
		checkPasswordConfirm();
		checkSubmit();
	});

	Event.observe('register_email', 'change', function() {
		checkEmail();
		checkSubmit();
	});

	Event.observe('register_godfather', 'change', function() {
		checkGodfather();
		checkSubmit();
	});

	Event.observe('register_accept_termsofuse', 'click', function() {
		checkAcceptTermsOfUse();
		checkSubmit();
	});

	Event.observe('register_submit', 'click', function() {
		checkLogin();
		checkPassword();
		checkPasswordConfirm();
		checkEmail();
		checkAcceptTermsOfUse();
		doRegister();
	});
});

function checkLogin() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				check_login: 1,
				login: $('register_login').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK') {
					$('register_login').style.background = '#cfc';
					$('register_login_error').innerHTML = '';
					check_login = true;
				} else {
					$('register_login').style.background = '#fcc';
					$('register_login_error').innerHTML = transport.responseText;
					check_login = false;
				}
			}
		}
	);
}

function checkPassword() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				check_password: 1,
				password: $('register_password').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK') {
					$('register_password').style.background = '#cfc';
					$('register_password_error').innerHTML = '';
					check_password = true;
				} else {
					$('register_password').style.background = '#fcc';
					$('register_password_error').innerHTML = transport.responseText;
					check_password = false;
				}
			}
		}
	);
}

function checkPasswordConfirm() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				check_password_confirm: 1,
				password: $('register_password').value,
				password_confirm: $('register_password_confirm').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK') {
					$('register_password_confirm').style.background = '#cfc';
					$('register_password_confirm_error').innerHTML = '';
					check_password_confirm = true;
				} else {
					$('register_password_confirm').style.background = '#fcc';
					$('register_password_confirm_error').innerHTML = transport.responseText;
					check_password_confirm = false;
				}
			}
		}
	);
}

function checkEmail() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				check_email: 1,
				email: $('register_email').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK') {
					$('register_email').style.background = '#cfc';
					$('register_email_error').innerHTML = '';
					check_email = true;
				} else {
					$('register_email').style.background = '#fcc';
					$('register_email_error').innerHTML = transport.responseText;
					check_email = false;
				}
			}
		}
	);
}

function checkGodfather() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				check_godfather: 1,
				godfather: $('register_godfather').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK') {
					$('register_godfather').style.background = '#cfc';
					$('register_godfather_error').innerHTML = '';
					check_godfather = true;
				} else {
					$('register_godfather').style.background = '#fcc';
					$('register_godfather_error').innerHTML = transport.responseText;
					check_godfather = false;
				}
			}
		}
	);
}

function checkAcceptTermsOfUse() {
	if ($('register_accept_termsofuse').checked)
		check_accept_termsofuse = true;
	else
		check_accept_termsofuse = false;
}

function checkSubmit() {
	if (! check_login || ! check_password || ! check_password_confirm || ! check_email || ! check_godfather || ! check_accept_termsofuse)
		$('register_submit').disabled = true;
	else
		$('register_submit').disabled = false;
}

function doRegister() {
	$('register_login').disabled = true;
	$('register_password').disabled = true;
	$('register_password_confirm').disabled = true;
	$('register_email').disabled = true;
	$('register_godfather').disabled = true;
	$('register_accept_termsofuse').disabled = true;
	$('register_submit').disabled = true;

	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				do_register: 1,
				login: $('register_login').value,
				password: $('register_password').value,
				email: $('register_email').value,
				godfather: $('register_godfather').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK') {
					$('register_status').innerHTML = '<p class="container_ok">Votre pré-inscription est effectuée, vous devez maintenant la confirmer avec l\'e-mail qui vous a été envoyé !</p><br />';
				} else {
					$('register_status').innerHTML = '<p class="container_error">Erreur</p><br />';
					new Effect.Shake($('registerBox'));
					setTimeout(function() {
						$('register_login').disabled = false;
						$('register_password').disabled = false;
						$('register_password_confirm').disabled = false;
						$('register_email').disabled = false;
						$('register_godfather').disabled = false;
						$('register_accept_termsofuse').disabled = false;
						$('register_submit').disabled = false;
					}, 1000);
				}
			}
		}
	);
}
