var top=true;

function ereg_replace(tx,rg,ch)
{
var regEx = new RegExp(rg,"g")
return tx.replace(regEx,ch)
}


function test_num(id)
{
champ=getObject(id);
valeur=ereg_replace(champ.value,",",".")

if (isNaN(valeur))
	{
	alert ("Veuillez entrer uniquement des chiffres."); 
	champ.value="";
	}
}


function checkDate ( field )
{
	var checkstr = "0123456789";
	var DateValue = field;
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	for (i = 0; i < DateValue.length; i++)
	{
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)
		{
			DateTemp = DateTemp + DateValue.substr(i,1);
		}
	}
	DateValue = DateTemp;
	if (DateValue.length != 8)
	{
		err = 19;
	}
	year = DateValue.substr(4,4);
	if (year == 0)
	{
		err = 20;
	}
	if (year > 2000)
		{
			err = 20;
	}
	month = DateValue.substr(2,2);
	if ((month < 1) || (month > 12))
	{
		err = 21;
	}
	day = DateValue.substr(0,2);
	if (day < 1)
	{
		err = 22;
	}
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
	{
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29))
	{
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28))
	{
		err = 24;
	}
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
	{
		err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
	{
		err = 26;
	}
	if ( ( field.length == 0 ) )
	{
		err = 27;
	}
	if (err == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}


function checkTelephone ( field )
{
	var checkstr = "0123456789";
	var TelephoneValue = field;
	var TelephoneTemp = "";
	var err = 0;
	var i;
	err = 0;
	for (i = 0; i < TelephoneValue.length; i++)
	{
		if (checkstr.indexOf(TelephoneValue.substr(i,1)) >= 0)
		{
			TelephoneTemp = TelephoneTemp + TelephoneValue.substr(i,1);
		}
	}
	TelephoneValue = TelephoneTemp;
	if ( ( field.length == 0 ) )
	{
		err = 2;
	}
	if (err == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function checkEmail ( emailStr )
{ 
	var checkTLD=0;
	var knownDomsPat=/ ^(com|fr|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null)
	{
		alert("Veuillez indiquer une adresse e-mail valide.");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++)
	{
		if (user.charCodeAt(i)>127)
		{
			alert("Veuillez indiquer une adresse e-mail valide.\nLe nom d'utilisateur contient des caractères invalides.");
			return false;
		}
	}
	for (i=0; i<domain.length; i++)
	{
		if (domain.charCodeAt(i)>127)
		{
			alert("Veuillez indiquer une adresse e-mail valide.\nLe nom de domaine contient des caractères invalides.");
			return false;
		}
	}
	if (user.match(userPat)==null)
	{
		alert("Veuillez indiquer une adresse e-mail valide.\nLe nom d'utilisateur est invalide.");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
	{
		for (var i=1;i<=4;i++)
		{
			if (IPArray>255)
			{
				alert("Veuillez indiquer une adresse e-mail valide.\nL'adresse IP est invalide.");
				return false;
			}
		}
		return true;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++)
	{
		if (domArr[i].search(atomPat)==-1)
		{
			alert("Veuillez indiquer une adresse e-mail valide.\nLe nom de domaine est invalide.");
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
	{
		alert("Veuillez indiquer une adresse e-mail valide.\nL'extension du domaine est invalide");
		return false;
	}
	if (len<2)
	{
		alert("Veuillez indiquer une adresse e-mail valide.\nVous devez indiquer une extension au domaine valide: ex .com.");
		return false;
	}
	return true;
}


//Auteur		ALB
//Date		28/10/2008
//Description	Méthodes vérifiant que le fichier est bien au format .doc 
function getExtension(fichier) // fonction de récupération extension fichier
{
         if (fichier!="")// si le champ fihier n'est pas vide
         {
            nom_fichier = fichier;// on récupere le chemin complet du fichier
            nbchar = nom_fichier.length;// on compte le nombre de caractere que compose ce chemin
            extension = nom_fichier.substring(nbchar-4,nbchar); // on récupere les 4 derniers caracteres
            extension = extension.toLowerCase(); //on uniforme les caracteres en minuscules au cas ou cela aurait été écris en majuscule...
            return extension; // on renvoi l'extension vers la fonction appelante
         }
}

function checkFile(fichier)// fonction vérification de l'extension aprés avoir choisi le fichier
{
   ext = getExtension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
   
            if(ext!=".doc"){
				//alert("Veuillez fournir un fichier au format .doc");
				return false;
			}
			return true;
}

//////////////////////////////////////////////////////////////////////////////////////////////////
// vérification des données saisies dans le formulaire 
//////////////////////////////////////////////////////////////////////////////////////////////////

function valider()
{
top=true;
		
	
if ( top )
{
	if ( getObject('civilite').value == "" )
	{
	
	alert ("Veuillez préciser votre civilité.");
	getObject('civilite').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('nom').value == "" )
	{
	
	alert ("Veuillez préciser votre nom.");
	getObject('nom').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('prenom').value == "" )
	{
	
	alert ("Veuillez préciser votre prenom.");
	getObject('prenom').focus();
	top=false;
	}
}
if ( top )
{
	top=checkDate(getObject('dateNaiss').value)
	if (top != true )
	{
	alert ("Veuillez saisir une date de naissance valide.");
	getObject('dateNaiss').focus();
	top=false;
	}
}
if ( top )
{
	top=checkEmail(getObject('email').value)
	if (top != true )
	{
	getObject('email').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('codePostal').value == "" || getObject('codePostal').value.length!=5 )
	{
	
	alert ("Veuillez préciser un code postal valide pour votre lieu de résidence.");
	getObject('codePostal').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('commune').value == "" )
	{
	
	alert ("Veuillez préciser votre commune de résidence.");
	getObject('commune').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('typeDemande').value == "" )
	{
	
	alert ("Veuillez préciser l'objet de votre demande.");
	getObject('typeDemande').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('typeDemande').value == "Offre d'emploi" && getObject('referenceOffre').value == "" )
	{
	
	alert ("Veuillez préciser la référence de l'offre d'emploi.");
	getObject('referenceOffre').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('niveauEtudes').value == "" )
	{
	
	alert ("Veuillez préciser votre niveau d'études.");
	getObject('niveauEtudes').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('dernierDiplome').value == "" )
	{
	
	alert ("Veuillez préciser le dernier diplôme que vous avez obtenu.");
	getObject('dernierDiplome').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('domaine').value == "" )
	{
	
	alert ("Veuillez préciser votre domaine d'expertise.");
	getObject('domaine').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('domaine').value == "Autre" && getObject('autreDomaine').value == ""  )
	{
	
	alert ("Veuillez préciser votre domaine d'expertise.");
	getObject('autreDomaine').focus();
	top=false;
	}
}
if ( top )
{
	if ( getObject('niveauExperience').value == "" )
	{
	
	alert ("Veuillez préciser votre niveau d'expérience.");
	getObject('niveauExperience').focus();
	top=false;
	}
}

if ( top )
{
	//Description	Vérification de la présence du CV
	if ( getObject('attach2').value == "" )
	{
	alert ("Veuillez joindre votre CV (format .doc) à votre candidature.");
	top=false;
	}
}

//Auteur		ALB
//Date		31/03/2009
//Description	Vérification du Cv au format .doc
if ( top )
{
	if (checkFile(getObject('attach2').value) == false )
	{	
	alert ("Veuillez fournir un CV au format .doc");
	top=false;
	}
}

//Auteur		ALB
//Date		31/03/2009
//Description	Vérification de la LM au format .doc
if ( top )
{
	if (getObject('attach1').value != "")
	{
		if (checkFile(getObject('attach1').value) == false)
		{	
		alert ("Veuillez fournir une lettre de motivation au format .doc");
		top=false;
		}
	}
}

	if (top==true){getObject("typeDemande").disabled=false;return true;}else{return false;}
}
















