
function verifyEmail(email) {	//contrôle de l'adresse mail
	var partsEmail = email.split('@');	//on découpe l'adresse email selon '@'
	
	if (partsEmail.length != 2) {										//si on ne distingue pas deux parties de l'adresse email selon l'@
		return false;											//l'adresse e-mail n'est pas valide
	}
	
	if ((partsEmail[0].length > 45) || (partsEmail[1].length > 55)) {	//si une des deux parties de l'email est trop longue
		return false;													//c'est pas bon
	}
	
	if (verifyPartEmail(partsEmail[0],"^[a-z0-9!#$%*/?|^{}`~&'+\=_.-]*$")) {	//si la premier partie de l'adresse e-mail est valide
	//if (verifyPartEmail(partsEmail[0],"^[a-z]*$")) {	//si la premier partie de l'adresse e-mail est valide
		return verifyPartEmail(partsEmail[1],"^[a-z0-9+\.-]*$");			//on n'a plus qu'à examiner la seconde
		//return true;
	} else {																	//si elle n'est pas valide
		return false;													//alors, l'adresse e-mail n'est pas valide
	}
}
	
function verifyPartEmail(part,expression) {	//vérifier une partie de l'adresse email
	if (part.substr(0,1) == '.') {			//si la partie de l'adresse mail commence par un point
		return false;			//elle n'est pas valide
	}
	
	if (part.substr(part.length-1,1) == '.') {	//si la partie de l'adresse mail fintit par un point
		return false;					//elle n'est pas valide
	}
	
	if (part.indexOf('..') != -1) {	//si on trouve deux points consécutifs dans la partie
		return false;			//elle n'est pas valide
	}
	
	var reg = new RegExp(expression,"gi");	//expression réguliere pour tester la validité des caractères
	
	if (!reg.test(part)) {				//si on trouve des caractères interdits
		return false;		//elle n'est pas valide
	}
	
	return true;				//en dehors de tout ça , la partie est valide
}

function verifyPostCode(zipcode) {
	var reg = new RegExp('( )','g');
	
	var postcode = zipcode.replace(reg,'').toUpperCase();									//on prend le code postal

	var l1 = '^[A-PR-UWYZ]';																//règle pour la première lettre d'un code postal
	var l2 = '[A-HK-Y]';																	//règle pour la seconde lettre d'un code postal
	var l3 = '[A-HJKSTUW]';																	//règle pour la troisième lettre d'un code postal
	var l4 = '[ABEHMNPRV-Y]';																//règle pour la quatrième lettre d'un code postal
	
	var sp = '[0-9][ABD-HJLNP-UW-Z]{2}$';													//règle pour la seconde partie d'un code postal

	//alert(postcode);
	//alert(l1 + '[0-9]' + sp);
	
	var code1 = new RegExp(l1 + '[0-9]' + sp);												//AN NAA
	var code2 = new RegExp(l1 + '[0-9]{2}' + sp);											//ANN NAA
	var code3 = new RegExp(l1 + l2 + '[0-9]' + sp);											//AAN NAA
	var code4 = new RegExp(l1 + l2 + '[0-9]{2}' + sp);										//AANN NAA
	var code5 = new RegExp(l1 + '[0-9]' + l3 + sp);											//ANA NAA
	var code6 = new RegExp(l1 + l2 + '[0-9]' + l4 + sp);									//AANA NAA
	var code7 = new RegExp('^GIR0[A-Z]{2}$');												//GIR 0AA
	
	return code1.test(postcode)
			|| code2.test(postcode)
			|| code3.test(postcode)
			|| code4.test(postcode)
			|| code5.test(postcode)
			|| code6.test(postcode)
			|| code7.test(postcode);														//on regarde si le code postal correspond à l'un de ces 7 modèles
}