
function fieldExists(formulaire, id)
{
	try
	{
		var field = formulaire.elements[id].value;
		return true;
		
	}
	catch(err)
	{
		return false;
	
	}
	
}

function verifCommonFields(formulaire)
{
	var civilite   = formulaire.elements['civilite'].checked;
	var prenom     = formulaire.elements['prenom'].value;
	var nom        = formulaire.elements['nom'].value;
	var adresse    = formulaire.elements['adresse'].value;
	var ville      = formulaire.elements['ville'].value;
	var codepostal = formulaire.elements['codepostal'].value;
	var pays       = formulaire.elements['pays'].value;
	var email      = formulaire.elements['email'].value;
	
	if ( civilite == false ) { alert("Champ 'Civilité' incomplet."); return false;	}
	if ( prenom == "" )      { alert("Champ 'Prénom' incomplet."); return false;	}
	if ( nom == "" )         { alert("Champ 'Nom' incomplet."); return false;	}
	if ( adresse == "" )     { alert("Champ 'Adresse' incomplet."); return false;	}
	if ( ville == "" )       { alert("Champ 'Ville' incomplet."); return false;	}
	if ( codepostal == "" )  { alert("Champ 'Code postal' incomplet."); return false;	}
	if ( pays == "" )        { alert("Champ 'Pays' incomplet."); return false;	}
	
	if ( (email.indexOf('@',0) == -1) || (email.indexOf('.',0) == -1) )
	{
		alert("L'adresse Email est incorrecte.");
		return false;
	
	}
	
	return true;
	
}

function verifPeriodFields(formulaire)
{			
	if(fieldExists(formulaire, 'debut') && fieldExists(formulaire, 'fin'))
	{
		var date_regexp = new RegExp("[0-9]{4}-[0-9]{2}-[0-9]{2}");
		
		var debut = formulaire.elements['debut'].value;
		var fin = formulaire.elements['fin'].value;
				
		if ( (debut != "") && (date_regexp.test(debut) == false) ) { alert("Champ 'Période du' mal formaté (aaaa-mm-dd)."); return false;  }
		if ( (fin != "") && (date_regexp.test(fin) == false) ) { alert("Champ 'Période au' mal formaté (aaaa-mm-dd)."); return false;  }
		
		if( (debut != "") && (fin == "")) { alert("Veuillez sélectionner une date de fin de période."); return false; }
		if( (debut == "") && (fin != "")) { alert("Veuillez sélectionner une date de debut de période."); return false; }
		if( debut > fin )                 { alert("La date de début de période doit être antérieure à celle de fin de période."); return false; }
		
		return true;
		
	}
	else
	{
		return true;
		
	}
	
}

function verifDateField(formulaire)
{	
	if( fieldExists(formulaire, 'date') )
	{
		var date_regexp = new RegExp("[0-9]{4}-[0-9]{2}-[0-9]{2}");
		
		var date = formulaire.elements['date'].value;
		
		if ( (date != "") && (date_regexp.test(date) == false) )
		{ 
			alert("Champ 'Date souhaitée' mal formaté (aaaa-mm-dd)."); 
			return false;  
		
		}
		else
		{
			return true;
			
		}
		
	}
	else
	{
		return true;
		
	}
	
}

function verifForm(formulaire)
{
	return ( verifCommonFields(formulaire) && verifPeriodFields(formulaire) && verifDateField(formulaire) );
	
}