//--------------------------------------------------------
// Fonction de verification de : mail
//--------------------------------------------------------
function IsMailValide(mail)
{
	var ret = true;
	var car;
	var nbcar = mail.value.length;
	var nbarobass = 0;
	var siarobass = mail.value.indexOf('@');
	var posarobass = 0;
	var nbpoint = 0;
	var sipoint = mail.value.indexOf('.');
	var pospoint = 0;
	var count;

	//On verifie que le champ soit non vide	
	if (nbcar == 0)
	{
		alert("Please, enter your e-mail address!");
		ret = false;
	}
	//On verifie que l'email soit de la forme xxx@xxx.xxx
	else 
	{
		//On a l'arobase et le point ?
	    if (siarobass == -1 || sipoint == -1)
	    	ret = false;
     	
	     for (count = 0; count < nbcar && ret; count++)
		 {
	        car = mail.value.substr(count, 1);
	        
			//Tests associes au caractere @
			if(car == "@")
			{
				//Verifie la validite du placement dans la chaine du caractere @
		   		if (count == 0 || count+1 == nbcar) 
				{
	            	ret = false;
	              	break;
	           	}
	           	
				//Verifie que le caractere @ n'apparait qu'une fois		
				nbarobass++;
				if(nbarobass > 1) 
				{
	            	ret = false;
	            	break;
		        }
	           
			    //Verifie que @ soit succede d'au moins 4 characteres
	    	    posarobass = count;
	        	if((nbcar - posarobass) < 4) 
				{
					ret = false;
	              	break;
	            }
	        }
	     	
			//Tests associes au caractere '.'
		    if(car == ".") 
			{
				//Verifie sa position
	        	if (count == 0 || count+1 == nbcar) 
			   	{
	            	ret = false;
	             	break;
	           	}
				
				//??
			   	if(posarobass != 0)
				{
					//Un seul caractere '.' autorise dans l'addresse mail
					nbpoint++;
		    	  	if(nbpoint > 1) 
					{
		        		ret = false;
			         	break;
		            }
	
					//Le point doit etre trouve entre 2 et 3 characteres avant la fin de l'adresse mail
			      	pospoint = count+1;
		    	  	if((nbcar - pospoint) < 2 || (nbcar - pospoint) > 3)
					{
	            		ret = false;
		                break;
		            }
	    	    }
	     	}
		}
	
	    if(!ret)
    		alert("Please, enter a valid e-mail address");
    }

    return ret;
}



//--------------------------------------------------------
// Fonction de verification de : lastName
//--------------------------------------------------------
function IsLastNameValide(lastName)
{
	//On verifie que le champ soit non vide
	if (lastName.value == "")
	{
		alert("Please, enter your Last Name!");
		return false;
	}
	
	//On verifie que le champ ne contienne que des caracteres autorises
	//Tous les caracteres alphabetiques ainsi que l'appostrophe, le tiret et l'espace sont permis
	for (i=0; i < lastName.value.length; i++)
	if (lastName.value.charAt(i)< "A" || lastName.value.charAt(i)> "z")
	    if(lastName.value.charAt(i) != "'" && lastName.value.charAt(i) != "-" &&
               lastName.value.charAt(i) != " "){
	        alert("Please, enter a valid Last Name!");	
	        return false;
	    }
		
	return true;
}

//--------------------------------------------------------
// Fonction de verification de : firstName
//--------------------------------------------------------
function IsFirstNameValide(firstName)
{
	//On verifie que le champ soit non vide
	if (firstName.value == "")
	{
		alert("Please, enter your first Name!");
		return false;
	}
	
	//On verifie que le champ ne contienne que des caracteres autorises
	//Tous les caracteres alphabetiques ainsi que l'appostrophe, le tiret et l'espace sont permis
	for (i=0; i < firstName.value.length; i++)
	if (firstName.value.charAt(i)< "A" || firstName.value.charAt(i)> "z")
	    if(firstName.value.charAt(i) != "'" && firstName.value.charAt(i) != "-" &&
               firstName.value.charAt(i) != " "){
	        alert("Please, enter a valid First Name!");	
	        return false;
	    }
	 
	return true;
}

//--------------------------------------------------------
// Fonction de verification de : myLink
//--------------------------------------------------------
function IsMyLinkValide(myLink)
{
	//On verifie que le champ soit non vide
	if (myLink.value == "" || myLink.value == "http://www.")
	{
		alert("Please, enter the forum link you want to submit!");
		return false;
	}
	 
	return true;
}






//--------------------------------------------------------
// Fonction de -- VERIFICATION du FORMULAIRE
//--------------------------------------------------------
// Cette fonction regroupe l'appelle aux differentes 
// fonctions de verification pour l'ensemble du formulaire
// Retourne VRAI si toutes les verifications sont passees
// Sinon affiche un message d'erreur et retourne FAUX
//--------------------------------------------------------
function verif_formulaire(formulaire)
{
	//
	//Verification de mail
	if (!IsMailValide(formulaire.mail))
	{
		formulaire.mail.focus();
		return false;
	}

	//
	//Verification de lastName
	if (!IsLastNameValide(formulaire.lastName))
	{
		formulaire.lastName.focus();
		return false;
	}
	
	//
	//Verification de firstName
	if (!IsFirstNameValide(formulaire.firstName))
	{
		formulaire.firstName.focus();
		return false;
	}
	
	//
	//Verification de myLink
	if (!IsMyLinkValide(formulaire.myLink))
	{
		formulaire.myLink.focus();
		return false;
	}
	
	
	
	return true;
}
