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

Event.observe(window, 'load', function() {
	if ($('login_login')) {
		$('login_login').focus();

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

	if ($('login_password')) {
		Event.observe('login_password', 'change', function() {
			checkPassword();
		});
	}

	if ($('login')) {
		Event.observe('login', 'submit', function() {
			checkLogin();
			checkPassword();
			doLogin();
		});
	}

	if ($('registerDragonRace')) {
		Event.observe('registerDragonRace', 'change', function() {
			checkRegister1();
		});
	}

	if ($('registerDragonName')) {
		Event.observe('registerDragonName', 'change', function() {
			checkRegister1();
		});

		Event.observe('registerDragonName', 'keyup', function() {
			checkRegister1();
		});
	}

	if ($('registerSubmit')) {
		Event.observe('registerSubmit', 'click', function() {
			doRegister1();
		});
	}
});

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

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

function doLogin() {
	$('login_login').disabled = true;
	$('login_password').disabled = true;
	$('login_submit').disabled = true;

	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'login',
				do_login: 1,
				login: $('login_login').value,
				password: $('login_password').value
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK')
					window.location.reload();
				else {
					showError(transport.responseText);
					$('loginFailed').show();
					setTimeout(function() {
						$('login_login').disabled = false;
						$('login_password').disabled = false;
						$('login_submit').disabled = false;
					}, 1000);
				}
			}
		}
	);
};

function forgotLogin() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'login',
				forgot_login: 1
			},
			onSuccess: function(transport) {
				showInfo(transport.responseText);
			}
		}
	);
};

function doForgotLogin(email_) {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'login',
				do_forgot_login: 1,
				email: email_
			},
			onSuccess: function(transport) {
				if (transport.responseText == 'OK')
					showOk('Un e-mail contenant votre <strong>Identifiant</strong> vous a été envoyé');
				else
					showError(transport.responseText);
			}
		}
	);
};

function forgotPassword() {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'login',
				forgot_password: 1
			},
			onSuccess: function(transport) {
				showInfo(transport.responseText);
			}
		}
	);
};

function doForgotPassword(login_, email_) {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'login',
				do_forgot_password: 1,
				login: login_,
				email: email_
			},
			onSuccess: function(transport) {
				if (transport.responseText == 'OK')
					showOk('Un e-mail contenant votre <span style="text-decoration: underline;">nouveau</span> <strong>Mot de passe</strong> vous a été envoyé');
				else
					showError(transport.responseText);
			}
		}
	);
};

function dragonRaceInfos(race_, gender_) {
	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'index',
				dragon_race_infos: 1,
				race: race_,
				gender: gender_
			},
			onSuccess: function(transport) {
				showInfo(transport.responseText);
			}
		}
	);
};

function dragonGenderImg(gender_) {
	$('registerFireDragonImg').src = 'media/image/dragons/fire-'+gender_+'-young-small.png';
	$('registerForestDragonImg').src = 'media/image/dragons/forest-'+gender_+'-young-small.png';
	$('registerMageDragonImg').src = 'media/image/dragons/mage-'+gender_+'-young-small.png';
	$('registerMountainDragonImg').src = 'media/image/dragons/mountain-'+gender_+'-young-small.png';
	$('registerPlainDragonImg').src = 'media/image/dragons/plain-'+gender_+'-young-small.png';
	$('registerWaterDragonImg').src = 'media/image/dragons/water-'+gender_+'-young-small.png';
};

function checkRegister1() {
	if ($('registerDragonRace').value == 'none') {
		$('registerSubmit').disabled = true;
		return;
	}

	if ($('registerDragonName').value == '') {
		$('registerSubmit').disabled = true;
		return;
	}

	$('registerSubmit').disabled = false;
};

function doRegister1() {
	$('registerDragonRace').disabled = true;
	$('registerDragonName').disabled = true;
	$('registerDragonGenderMale').disabled = true;
	$('registerDragonGenderFemale').disabled = true;
	$('registerSubmit').disabled = true;

	new Ajax.Request(
		'ajax.php',
		{
			method: 'post',
			parameters: {
				request: 'register',
				do_register_1: 1,
				godfather: $('registerGodfather').value,
				race: $('registerDragonRace').value,
				name: $('registerDragonName').value,
				gender: (($('registerDragonGenderMale').checked)?'male':'female')
			},
			asynchronous: false,
			onSuccess: function(transport) {
				if (transport.responseText == 'OK')
					window.location = 'register.php';
				else {
					showError(transport.responseText);
					setTimeout(function() {
						$('registerDragonRace').disabled = false;
						$('registerDragonName').disabled = false;
						$('registerDragonGenderMale').disabled = false;
						$('registerDragonGenderFemale').disabled = false;
						$('registerSubmit').disabled = false;
					}, 1000);
				}
			}
		}
	);
};

