/* ===== GESTION DES FORMULAIRES ===== */

var fieldLogin = 0;
var fieldEmail = 0;
var fieldPassword = 0;
var fieldConfirmation = 0;
var fieldNom = 0;
var fieldPrenom = 0;
var fieldAdresse = 0;
var fieldCP = 0;
var fieldVille = 0;
var fieldCivilite = 0;
var fieldAge = 0;
var fieldNaissance = 0;

var coteNom = 'gauche';
var cotePrenom = 'gauche';
var coteLogin = 'gauche';
var coteEmail = 'gauche';
var cotePassword = 'gauche';
var coteConfirmation = 'gauche';
var coteAdresse = 'gauche';
var coteCP = 'gauche';
var coteVille = 'gauche';
var coteCivilite = 'gauche';
var coteAge = 'gauche';
var coteNaissance = 'gauche';

function initFormulaireUser() {
	Event.observe('email', 'blur', function() { check_email('user', false); });
	Event.observe('login_register', 'blur', function() { check_login('user', false); });
	Event.observe('password_register', 'blur', function() { check_password(false); });
	Event.observe('password_register_confirmation', 'blur', function() { check_confirmation(false); });

	Event.observe('nom', 'blur', function() { check_nom('user', false); });
	Event.observe('prenom', 'blur', function() { check_prenom('user', false); });
	/*Event.observe('adresse', 'blur', function() { check_adresse(false); });
	Event.observe('cp', 'blur', function() { check_cp(false); });
	Event.observe('ville', 'blur', function() { check_ville(false); });
	Event.observe('age', 'change', function() { check_age(false); });*/
	
	Event.observe('civilite', 'change', function() { check_civilite(false); });
	
	Event.observe('jour', 'change', function() { check_naissance(false); });
	Event.observe('mois', 'change', function() { check_naissance(false); });
	Event.observe('annee', 'change', function() { check_naissance(false); });

	if($('forget_password')) {
		$('forget_password').hide();
		Event.observe('forgetPass', 'click', function() { toggleElement('forget_password'); });
	}
}

function checkFormUser() {
	check_login('user', true);			
	check_email('user', true);
	check_password(true);
	check_confirmation(true);
	check_nom(true);
	check_prenom(true);
	/*check_adresse(true);
	check_cp(true);
	check_ville(true);
	check_age(true);*/
	check_civilite(true);
	check_naissance(true);

	//if(fieldLogin == 1 && fieldEmail == 1 && fieldPassword == 1 && fieldConfirmation == 1 && fieldNom == 1 && fieldPrenom == 1 && fieldEmail == 1 && fieldAdresse == 1 && fieldCP == 1 && fieldVille == 1 && fieldCivilite == 1 && fieldAge == 1) {
	if(fieldLogin == 1 && fieldEmail == 1 && fieldPassword == 1 && fieldConfirmation == 1 && fieldNom == 1 && fieldPrenom == 1 && fieldEmail == 1 && fieldCivilite == 1 && fieldNaissance == 1) {
		return true;
	} else {
		return false;
	}
}

/* --- Fonctions --- */

function check_email(type, checkForm) {
	checkDiv('f_email');
	var email = $F('email');
	var user_id = $F('user_id');

	if(email != '') {
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
					
		if(filter.test(email)) {
			new Ajax.Request(SITE_ROOT_PATH+'site/ajax/register.php',
					{
						method : 'POST',
						parameters : 'action=checkEmail&email='+email+'&user_id='+user_id,
						onSuccess : function(xhr) {
							if(xhr.responseText == 'indisponible') {
								displayErrorForm('check_email', 'f_email', 'Cet email n\'est pas disponible', coteEmail);
								fieldEmail = 0;
							} else {
								fieldEmail = 1;
							}
						}
					});
		} else {
			displayErrorForm('check_email', 'f_email', 'Votre adresse email est invalide', coteEmail);
			fieldEmail = 0;
		}
	} else {
		if(checkForm == true) {
			displayErrorForm('check_email', 'f_email', 'Veuillez indiquer votre email', coteEmail);
			fieldEmail = 0;
		}
	}
}

function check_login(type, checkForm) {
	if($('login_register')) {
		var login = $F('login_register');
	} else {
		var login = $F('login');
	}
	
	var user_id = $F('user_id');
	
	checkDiv('f_login');
	if(login != '') {
		if(login.length < 3) {
			displayErrorForm('check_login', 'f_login', 'Votre login est trop court | 3 caractres min', coteLogin);
			fieldLogin = 0;
		} else {
		new Ajax.Request(SITE_ROOT_PATH+'site/ajax/register.php',
				{
					method : 'post',
					parameters : 'action=checkLogin&login='+login+'&user_id='+user_id,
					onSuccess : function(xhr) {
						if(xhr.responseText == 'indisponible') {
							displayErrorForm('check_login', 'f_login', 'Ce login n\'est pas disponible', coteLogin);
							fieldLogin = 0;
						} else {
							fieldLogin = 1;
						}
					}
				});
		}
	} else {
		if(checkForm == true) {
			displayErrorForm('check_login', 'f_login', 'Veuillez indiquer votre login', coteLogin);
			fieldLogin = 0;
		}
	}
}

function check_password(checkForm) {
	if($('password_register')) {
		var password = $('password_register');
	} else {
		var password = $('new_password');
	}
	
	checkDiv('f_password');
	if(password.value != '') {
		if(password.value.length < 6) {
			displayErrorForm('check_password', 'f_password', 'Votre mot de passe est trop court', cotePassword);
			fieldPassword = 0;
		} else {
			fieldPassword = 1;
		}
	} else {
		if(checkForm == true) {
			displayErrorForm('check_password', 'f_password', 'Veuillez choisir un mot de passe', cotePassword);
			fieldPassword = 0;
		}
	}
}

function check_confirmation(checkForm) {
	if($('password_register_confirmation')) {
		var confirmation = $('password_register_confirmation');
	} else {
		var confirmation = $('new_password_confirmation');
	}
	
	if($('password_register')) {
		var password = $('password_register');
	} else {
		var password = $('new_password');
	}

	checkDiv('f_confirmation');
	if(confirmation.value != '') {
		//alert(password.value+' : '+confirmation.value);
		if(password.value != confirmation.value) {
			displayErrorForm('check_confirmation', 'f_confirmation', 'Les mots de passe sont diff&eacute;rents', coteConfirmation);
			fieldConfirmation = 0;
		} else {
			fieldConfirmation = 1;
		}
	} else {
		if(checkForm == true) {
			displayErrorForm('check_confirmation', 'f_confirmation', 'Veuillez confirmer le mot de passe', coteConfirmation);
			fieldConfirmation = 0;
		}
	}
}

function check_civilite(checkForm) {
	checkDiv('f_civilite');
	if($('civilite').options[$('civilite').selectedIndex].value == 0) {
		if(checkForm == true) {
			displayErrorForm('check_civilite', 'f_civilite', 'Veuillez indiquer votre civilité', coteCivilite);
			fieldCivilite = 0;
		}
	} else {
		fieldCivilite = 1;
	}
}

function check_age(checkForm) {
	checkDiv('f_age');
	if($('age').options[$('age').selectedIndex].value == 0) {
		if(checkForm == true) {
			displayErrorForm('check_age', 'f_age', 'Veuillez indiquer votre âge', coteAge);
			fieldAge = 0;
		}
	} else {
		fieldAge = 1;
	}
}

function check_naissance(checkForm) {
	checkDiv('f_naissance');
	if($('jour').options[$('jour').selectedIndex].value == 0 || $('mois').options[$('mois').selectedIndex].value == 0 || $('annee').options[$('annee').selectedIndex].value == 0) {
		if(checkForm == true) {
			displayErrorForm('check_naissance', 'f_naissance', 'Veuillez indiquer votre date de naissance', coteNaissance);
			fieldNaissance = 0;
		}
	} else {
		fieldNaissance = 1;
	}
}

function check_nom(checkForm) {
	checkDiv('f_nom');
	if($('nom').value == '') {
		if(checkForm == true) {
			displayErrorForm('check_nom', 'f_nom', 'Veuillez indiquer votre nom', coteNom);
			fieldNom = 0;
		}
	} else {
		fieldNom = 1;
	}
}

function check_prenom(checkForm) {
	checkDiv('f_prenom');
	if($('prenom').value == '') {
		if(checkForm == true) {
			displayErrorForm('check_prenom', 'f_prenom', 'Veuillez indiquer votre prénom', cotePrenom);
			fieldPrenom = 0;
		}
	} else {
		fieldPrenom = 1;
	}
}

function check_adresse(checkForm) {
	checkDiv('f_adresse');
	if($('adresse').value == '') {
		if(checkForm == true) {
			displayErrorForm('check_adresse', 'f_adresse', 'Veuillez indiquer votre adresse', coteAdresse);
			fieldAdresse = 0;
		}
	} else {
		fieldAdresse = 1;
	}
}

function check_cp(checkForm) {
	checkDiv('f_cp');
	if($('cp').value == '') {
		if(checkForm == true) {
			displayErrorForm('check_cp', 'f_cp', 'Veuillez indiquer votre code postal', coteCP);
			fieldCP = 0;
		}
	} else {
		fieldCP = 1;
	}
}

function check_ville(checkForm) {
	checkDiv('f_ville');
	if($('ville').value == '') {
		if(checkForm == true) {
			displayErrorForm('check_ville', 'f_ville', 'Veuillez indiquer votre ville', cotePrenom);
			fieldVille = 0;
		}
	} else {
		fieldVille = 1;
	}
}

function checkDiv(div) {
	if($(div)) { 
		Element.remove(div);
	}
}

function displayErrorForm(container, divId, message, css) {	
	checkDiv(divId);

	var div = new Element('div', {
								'class' : 'erreur_form_'+css,
								id : divId
							});
	
	var img = new Element('img', {
								src : ADMIN_THEME_MEDIA_IMAGE_PATH+'picto_rouge.gif'
							});
	
	var span = new Element('span').update(message);

	div.insert(img);	
	div.insert(span);	
	$(container).insert(div);
	
	Element.hide($(divId));
	Effect.BlindDown($(divId), {duration : 0.3});
}