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

var check_register_login = false;
var check_register_password = false;
var check_register_password_confirm = false;
var check_register_email = false;
var check_register_godfather = false;
var check_register_accept_termsofuse = false;

Event.observe(window, 'load', function() {
	check_register_login = false;
	check_register_password = false;
	check_register_password_confirm = false;
	check_register_email = false;
	check_register_godfather = true;
	check_register_accept_termsofuse = false;

	if ($('register_login') && $('register_submit')) {
		Event.observe('register_login', 'change', function() {
			checkRegisterLogin();
			checkRegisterSubmit();
		});
	}

	if ($('register_password') && $('register_password_confirm') && $('register_submit')) {
		Event.observe('register_password', 'change', function() {
			checkRegisterPassword();
			checkRegisterPasswordConfirm();
			checkRegisterSubmit();
		});
	}

	if ($('register_password') && $('register_password_confirm') && $('register_submit')) {
		Event.observe('register_password_confirm', 'change', function() {
			checkRegisterPassword();
			checkRegisterPasswordConfirm();
			checkRegisterSubmit();
		});
	}

	if ($('register_email') && $('register_submit')) {
		Event.observe('register_email', 'change', function() {
			checkRegisterEmail();
			checkRegisterSubmit();
		});
	}

	if ($('register_godfather') && $('register_submit')) {
		Event.observe('register_godfather', 'change', function() {
			checkGodfather();
			checkRegisterSubmit();
		});
	}

	if ($('register_accept_termsofuse') && $('register_submit')) {
		Event.observe('register_accept_termsofuse', 'click', function() {
			checkRegisterAcceptTermsOfUse();
			checkRegisterSubmit();
		});
	}

	if ($('register_submit')) {
		Event.observe('register_submit', 'click', function() {
			checkRegisterLogin();
			checkRegisterPassword();
			checkRegisterPasswordConfirm();
			checkRegisterEmail();
			checkRegisterAcceptTermsOfUse();
			doRegister();
		});
	}
});

function checkRegisterLogin() {
	if (! $('register_login'))
		return;

	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_register_login = true;
				} else {
					$('register_login').style.background = '#fcc';
					$('register_login_error').innerHTML = transport.responseText;
					check_register_login = false;
				}
			}
		}
	);
};

function checkRegisterPassword() {
	if (! $('register_password'))
		return;

	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_register_password = true;
				} else {
					$('register_password').style.background = '#fcc';
					$('register_password_error').innerHTML = transport.responseText;
					check_register_password = false;
				}
			}
		}
	);
};

function checkRegisterPasswordConfirm() {
	if (! $('register_password') || ! $('register_password_confirm'))
		return;

	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_register_password_confirm = true;
				} else {
					$('register_password_confirm').style.background = '#fcc';
					$('register_password_confirm_error').innerHTML = transport.responseText;
					check_register_password_confirm = false;
				}
			}
		}
	);
};

function checkRegisterEmail() {
	if (! $('register_email'))
		return;

	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_register_email = true;
				} else {
					$('register_email').style.background = '#fcc';
					$('register_email_error').innerHTML = transport.responseText;
					check_register_email = false;
				}
			}
		}
	);
};

function checkGodfather() {
	if (! $('register_godfather'))
		return;

	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_register_godfather = true;
				} else {
					$('register_godfather').style.background = '#fcc';
					$('register_godfather_error').innerHTML = transport.responseText;
					check_register_godfather = false;
				}
			}
		}
	);
};

function checkRegisterAcceptTermsOfUse() {
	if (! $('register_accept_termsofuse'))
		return;

	if ($('register_accept_termsofuse').checked)
		check_register_accept_termsofuse = true;
	else
		check_register_accept_termsofuse = false;
};

function checkRegisterSubmit() {
	if (! $('register_submit'))
		return;

	if (! check_register_login || ! check_register_password || ! check_register_password_confirm || ! check_register_email || ! check_register_godfather || ! check_register_accept_termsofuse)
		$('register_submit').disabled = true;
	else
		$('register_submit').disabled = false;
};

function doRegister() {
	if (! $('register_login') || ! $('register_password') || ! $('register_password_confirm') || ! $('register_email') || ! $('register_godfather') || ! $('register_accept_termsofuse') || ! $('register_submit'))
		return;

	$('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_2: 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);
				}
			}
		}
	);
};

