/*
+--------------------------------------------------
|	validerCourriel - Succession de tests afin de valider une adresse
|	adresse (str)	: adresse de courriel
|	> retourne le numéro de l'erreur sinon 0
+--------------------------------------------------
*/

function validerCourriel( adresse )
{
	var erreur;

	erreur = verifierCaracteresSpeciaux( adresse );

	if ( !erreur )
	{
		erreur = verifierAt( adresse );
		
		if ( !erreur )
		{
			erreur = verifierPoint( adresse );
			
			if ( !erreur )
			{
				erreur = verifierLongueur( adresse );
			}
		}
	}
	
	return erreur;
}


/*
+--------------------------------------------------
|	verifierCaracteresSpeciaux - Vérifie si l'adresse ne contient aucun caractère spécial
|	adresse (str)	: adresse de courriel
|	> retourne le numéro de l'erreur sinon 0
+--------------------------------------------------
*/

function verifierCaracteresSpeciaux( adresse )
{
	// On liste des caractères interdits dans un tableau
	var carInterdit = new Array("/",":",",",";"," ","?");
	var rang;
	
	for ( rang = 0; rang < carInterdit.length; rang++ )
	// Parcourt le tableau des caractères interdits
	{
		// Si l'adresse contient un seul de ses caractères, on retourne une erreur = 1
		if ( adresse.indexOf(carInterdit[rang]) != -1 )
			return 1;
	}
	
	return 0;
}


/*
+--------------------------------------------------
|	verifierAt - Vérifie la présence d'un seul et unique @
|	adresse (str)	: adresse de courriel
|	> retourne le numéro de l'erreur sinon 0
+--------------------------------------------------
*/

function verifierAt( adresse )
{
	// Vérifie que le premier @ et le dernier @ sont les mêmes, ce qui veut dire qu'il n'y a qu'un seul @
	// Vérifie aussi qu'il n'est pas le premier caractère de l'adresse
	if ( adresse.indexOf("@") == adresse.lastIndexOf("@") && adresse.indexOf("@") != 0 && adresse.indexOf("@") != -1 )
		return 0;
	else 
		return 2;
}

/*
+--------------------------------------------------
|	verifierPoint - Vérifie que le point se trouve après le @
|	adresse (str)	: adresse de courriel
|	> retourne le numéro de l'erreur sinon 0
+--------------------------------------------------
*/

function verifierPoint( adresse )
{
	var pos;
	var sousDomaine;
	
	pos = adresse.indexOf("@");
	// Extraction du sous-domaine de l'adresse
	sousDomaine = adresse.substring(pos+1, adresse.length);

	// Vérifie qu'un . est présent après le @
	if ( sousDomaine.indexOf(".") != -1 )
		return 0;
	else 
		return 3;
}


/*
+--------------------------------------------------
|	verifierLongueur - Vérifie que le nom de domaine (après le dernier .) est de 2 caractères minimum
|	adresse (str)	: adresse de courriel
|	> retourne le numéro de l'erreur sinon 0
+--------------------------------------------------
*/
function verifierLongueur( adresse )
{
	var pos;
	var domaine;
	
	pos = adresse.lastIndexOf(".");
	
	// Extraction du nom de domaine après le dernier .
	domaine = adresse.substring(pos+1, adresse.length);
	
	// Vérifie s'il est de taille 2 minimum
	if ( domaine.length >=2 )
		return 0;
	else
		return 4;
}