function getXhr(){
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	} 
	return xhr;
}

function check_mail(mail) {
	var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex  = usr + "\@" + domain + "$";
	//var regex  =/^[a-z]([a-z0-9_-] \.?) @([a-z0-9_-] \.) ([a-z]{2,3})$/i
	var rgx    = new RegExp(regex);
	return rgx.exec(mail) ? true : false;
}
function check_cp(cp) {
	var regex  = /^[0-9]{5}$/;
	var rgx    = new RegExp(regex);
	return rgx.exec(cp) ? true : false;
}
function check_tel(tel) {
	var regex  = /^[0-9]{10}$/;
	var rgx    = new RegExp(regex);
	return rgx.exec(tel) ? true : false;
}
function check_pass(tel) {
	var regex  = /^[a-zA-Z0-9]{3,}$/;
	var rgx    = new RegExp(regex);
	return rgx.exec(tel) ? true : false;
}

function icone_valid(status, alt, msg) {
	if (status)
		if (msg)
			return '<img border="0" src="images/valide.jpg" alt="'+alt+'" title="'+alt+'" /> '+msg;
		else
			return '<img border="0" src="images/valide.jpg" alt="'+alt+'" title="'+alt+'" />';
	else
		if (msg)
			return '<img border="0" src="images/invalide.jpg" alt="'+alt+'" title="'+alt+'" /> '+msg;
		else
			return '<img border="0" src="images/invalide.jpg" alt="'+alt+'" title="'+alt+'" />';
}

function valid_login_mail(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (check_mail(valeur))
			block.innerHTML = icone_valid(1, 'E-mail valide');
		else
			block.innerHTML = icone_valid(0, 'E-mail invalide', 'E-mail invalide');
	else
		block.innerHTML = icone_valid(0, 'E-mail invalide', 'L\'e-mail est requis');
}

function valid_mail(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur) {
		if (check_mail(valeur)) {
			var xhr = getXhr();
			xhr.onreadystatechange = function(){
				if(xhr.readyState == 4 && xhr.status == 200){
					if (xhr.responseText == "dispo") {
						block.innerHTML = icone_valid(1, 'E-mail valide', 'E-mail disponible');
					}
					else {
						block.innerHTML = icone_valid(0, 'E-mail non disponible', 'E-mail non disponible');
					}
				}
			}
			xhr.open("POST","inc/ajax/dispo_mail.php",true);
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send("mail="+valeur);
			/*block.innerHTML = icone_valid(1, 'E-mail valide', 'E-mail valide');*/
		}
		else {
			block.innerHTML = icone_valid(0, 'E-mail invalide', 'E-mail invalide');
		}
	}
	else {
		block.innerHTML = icone_valid(0, 'E-mail invalide', 'L\'e-mail est requis');
	}
}

function valid_recover_mail(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (check_mail(valeur)) {
			var xhr = getXhr();
			xhr.onreadystatechange = function(){
				if(xhr.readyState == 4 && xhr.status == 200){
					if (xhr.responseText == "dispo")
						block.innerHTML = icone_valid(0, 'E-mail inconnu', 'E-mail inconnu');
					else
						block.innerHTML = icone_valid(1, 'E-mail connu', 'E-mail connu');
				}
			}
			xhr.open("POST","inc/ajax/dispo_mail.php",true);
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send("mail="+valeur);
		}
		else
			block.innerHTML = icone_valid(0, 'E-mail invalide', 'E-mail invalide');
	else
		block.innerHTML = icone_valid(0, 'E-mail invalide', 'L\'e-mail est requis');
}

function valid_nom(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (valeur.length < 51)
			block.innerHTML = icone_valid(1, 'Nom valide');
		else
			block.innerHTML = icone_valid(0, 'Nom invalide', '50 caract&egrave;res maximum');
	else
		block.innerHTML = icone_valid(0, 'Le nom est requis', 'Le nom est requis');
}

function valid_adresse(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (valeur.length < 256)
			block.innerHTML = icone_valid(1, 'Adresse valide');
		else
			block.innerHTML = icone_valid(0, 'Adresse invalide', '255 caract&egrave;res maximum');
	else
		block.innerHTML = icone_valid(0, 'L\'adresse est requise', 'L\'adresse est requise');
}

function valid_cp(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (check_cp(valeur))
			block.innerHTML = icone_valid(1, 'Code postal valide');
		else
			block.innerHTML = icone_valid(0, 'Code postal invalide', 'exemple : 71210');
	else
		block.innerHTML = icone_valid(0, 'Le code postal est requis', 'Le code postal est requis');
}

function valid_ville(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (valeur.length < 51)
			block.innerHTML = icone_valid(1, 'Ville valide');
		else
			block.innerHTML = icone_valid(0, 'Ville invalide', '50 caract&egrave;res maximum');
	else
		block.innerHTML = icone_valid(0, 'La ville est requise', 'La ville est requise');
}

function valid_tel(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (check_tel(valeur))
			block.innerHTML = icone_valid(1, 'T&eacute;l&eacute;phone valide');
		else
			block.innerHTML = icone_valid(0, 'T&eacute;l&eacute;phone invalide', 'exemple : 0892161671');
	else
		block.innerHTML = icone_valid(0, 'Le t&eacute;l&eacute;phone est requis', 'Le t&eacute;l&eacute;phone est requis');
}

function valid_fax(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (check_tel(valeur))
			block.innerHTML = icone_valid(1, 'Fax valide');
		else
			block.innerHTML = icone_valid(0, 'Fax invalide', 'exemple : 0385789738');
	else
		block.innerHTML = '';
}

function valid_pass(id, valeur) {
	block = document.getElementById(id+'_status');
	if (valeur)
		if (check_pass(valeur))
			block.innerHTML = icone_valid(1, 'Mot de passe valide');
		else
			block.innerHTML = icone_valid(0, 'Mot de passe invalide', '3 caract&egrave;res alphanum&eacute;riques minimum');
	else
		block.innerHTML = icone_valid(0, 'Le mot de passe est requis', 'Le mot de passe est requis');
	if (id == 'register_pass')
		valid_pass2('register_pass2', document.getElementById('register_pass2').value);
}

function valid_pass2(id, valeur) {
	block = document.getElementById(id+'_status');
	pass = document.getElementById('register_pass').value;
	if (valeur)
		if (check_pass(valeur))
			if (valeur == pass)
				block.innerHTML = icone_valid(1, 'Mot de passe v&eacute;rifi&eacute;');
			else
				block.innerHTML = icone_valid(0, 'Les 2 mots de passe sont diff&eacute;rents', 'Les 2 mots de passe sont diff&eacute;rents');
		else
			block.innerHTML = icone_valid(0, 'Mot de passe invalide', '3 caract&egrave;res alphanum&eacute;riques minimum');
	else
		block.innerHTML = icone_valid(0, 'Le mot de passe est requis', 'Le mot de passe est requis');
}

function valider_login() {
	err = 0;
	form = document.forms['login'];
	
	mail = form.elements['login_mail'].value;
	block = document.getElementById('login_mail_status');
	if (mail)
		if (check_mail(mail))
			block.innerHTML = icone_valid(1, 'E-mail valide');
		else {
			block.innerHTML = icone_valid(0, 'E-mail invalide', 'E-mail invalide');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'E-mail invalide', 'L\'e-mail est requis');
		err++;
	}

	pass = form.elements['login_pass'].value;
	block = document.getElementById('login_pass_status');
	if (pass)
		if (check_pass(pass))
			block.innerHTML = icone_valid(1, 'Mot de passe valide');
		else {
			block.innerHTML = icone_valid(0, 'Mot de passe invalide', '3 caract&egrave;res alphanum&eacute;riques minimum');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'Le mot de passe est requis', 'Le mot de passe est requis');
		err++;
	}

	if (err > 0)
		return false;
	else
		return true;
}

function valider_register() {
	err = 0;
	form = document.forms['register'];
	
	nom = form.elements['register_nom'].value;
	block = document.getElementById('register_nom_status');
	if (nom)
		if (nom.length < 51)
			block.innerHTML = icone_valid(1, 'Nom valide');
		else {
			block.innerHTML = icone_valid(0, 'Nom invalide', '50 caract&egrave;res maximum');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'Le nom est requis', 'Le nom est requis');
		err++;
	}

	adresse = form.elements['register_adress'].value;
	block = document.getElementById('register_adress_status');
	if (adresse)
		if (adresse.length < 256)
			block.innerHTML = icone_valid(1, 'Adresse valide');
		else {
			block.innerHTML = icone_valid(0, 'Adresse invalide', '255 caract&egrave;res maximum');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'L\'adresse est requise', 'L\'adresse est requise');
		err++;
	}

	cp = form.elements['register_cp'].value;
	block = document.getElementById('register_cp_status');
	if (cp)
		if (check_cp(cp))
			block.innerHTML = icone_valid(1, 'Code postal valide');
		else {
			block.innerHTML = icone_valid(0, 'Code postal invalide', 'exemple : 71210');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'Le code postal est requis', 'Le code postal est requis');
		err++;
	}

	ville = form.elements['register_ville'].value;
	block = document.getElementById('register_ville_status');
	if (ville)
		if (ville.length < 51)
			block.innerHTML = icone_valid(1, 'Ville valide');
		else {
			block.innerHTML = icone_valid(0, 'Ville invalide', '50 caract&egrave;res maximum');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'La ville est requise', 'La ville est requise');
		err++;
	}

	tel = form.elements['register_tel'].value;
	block = document.getElementById('register_tel_status');
	if (tel)
		if (check_tel(tel))
			block.innerHTML = icone_valid(1, 'T&eacute;l&eacute;phone valide');
		else {
			block.innerHTML = icone_valid(0, 'T&eacute;l&eacute;phone invalide', 'exemple : 0892161671');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'Le t&eacute;l&eacute;phone est requis', 'Le t&eacute;l&eacute;phone est requis');
		err++;
	}

	fax = form.elements['register_fax'].value;
	block = document.getElementById('register_fax_status');
	if (fax)
		if (check_tel(fax))
			block.innerHTML = icone_valid(1, 'Fax valide');
		else {
			block.innerHTML = icone_valid(0, 'Fax invalide', 'exemple : 0385789738');
			err++;
		}
	else
		block.innerHTML = '';

	mail = form.elements['register_mail'].value;
	block = document.getElementById('register_mail_status');
	if (mail)
		if (check_mail(mail)) {
			var xhr = getXhr();
			xhr.onreadystatechange = function(){
				if(xhr.readyState == 4 && xhr.status == 200){
					if (xhr.responseText == "dispo")
						block.innerHTML = icone_valid(1, 'E-mail valide', 'E-mail disponible');
					else {
						block.innerHTML = icone_valid(0, 'E-mail non disponible', 'E-mail non disponible');
						err++;
					}
				}
			}
			xhr.open("POST","inc/ajax/dispo_mail.php",false);
			//mode asynchrone (parametre = true)lance le script avant que la réponse soit revenue, donc le formulaire n'est pas vérifié totalement...
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send("mail="+mail);
		}
		else {
			block.innerHTML = icone_valid(0, 'E-mail invalide', 'E-mail invalide');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'E-mail invalide', 'L\'e-mail est requis');
		err++;
	}

	pass = form.elements['register_pass'].value;
	block = document.getElementById('register_pass_status');
	if (pass)
		if (check_pass(pass))
			block.innerHTML = icone_valid(1, 'Mot de passe valide');
		else {
			block.innerHTML = icone_valid(0, 'Mot de passe invalide', '3 caract&egrave;res alphanum&eacute;riques minimum');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'Le mot de passe est requis', 'Le mot de passe est requis');
		err++;
	}
	
	pass2 = form.elements['register_pass2'].value;
	block = document.getElementById('register_pass2_status');

	if (pass2)
		if (check_pass(pass2))
			if (pass2 == pass)
				block.innerHTML = icone_valid(1, 'Mot de passe v&eacute;rifi&eacute;');
			else {
				block.innerHTML = icone_valid(0, 'Les 2 mots de passe sont diff&eacute;rents', 'Les 2 mots de passe sont diff&eacute;rents');
				err++;
			}
		else {
			block.innerHTML = icone_valid(0, 'Mot de passe invalide', '3 caract&egrave;res alphanum&eacute;riques minimum');
		}
	else {
		block.innerHTML = icone_valid(0, 'Le mot de passe est requis', 'Le mot de passe est requis');
		err++;
	}

	if (err > 0)
		return false;
	else
		return true;
}

function valider_recover() {
	err = 0;
	form = document.forms['recover'];

	mail = form.elements['recover_mail'].value;
	block = document.getElementById('recover_mail_status');
	if (mail)
		if (check_mail(mail)) {
			var xhr = getXhr();
			xhr.onreadystatechange = function(){
				if(xhr.readyState == 4 && xhr.status == 200){
					if (xhr.responseText == "dispo") {
						block.innerHTML = icone_valid(0, 'E-mail inconnu', 'E-mail inconnu');
						err++;
					}
					else
						block.innerHTML = icone_valid(1, 'E-mail connu', 'E-mail connu');
				}
			}
			xhr.open("POST","inc/ajax/dispo_mail.php",false);
			//mode asynchrone (parametre = true)lance le script avant que la réponse soit revenue, donc le formulaire n'est pas vérifié totalement...
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send("mail="+mail);
		}
		else {
			block.innerHTML = icone_valid(0, 'E-mail invalide', 'E-mail invalide');
			err++;
		}
	else {
		block.innerHTML = icone_valid(0, 'E-mail invalide', 'L\'e-mail est requis');
		err++;
	}
	
	if (err > 0)
		return false;
	else
		return true;
}
