// controle2.js
// ARPEGE 2004 - LB
// Création de demandes de documents d'Etat Civil à destination
// d'ActesWeb.
// Controles de surface ( coté client ) de la saisie utilisateur.
// 20040805:LB: V1

// Controle dans le cas d'une demande d'une administration ( au sens large : notaire etc ... )
// retourne true si aucune erreur
// sinon affiche le message d'erreur et retourne false

function ControlerDemandeA()
{
	var TypeD = "" ;
	var Acte = "" ;
	var Demandeur = "" ;
	var Mandant = "" ;
	
	// Merci IE ... ( qui retourne 'undefined' pour la valeur d'un groupe de radio bouton )
	for (var i=0; i < document.form.TypeD.length; i++)
	{
		if (document.form.TypeD[i].checked)
		{
			TypeD = document.form.TypeD[i].value ;
		}
	}	
	for (i=0; i < document.form.Acte.length; i++)
	{
		if (document.form.Acte[i].checked)
		{
			Acte = document.form.Acte[i].value ;
		}
	}	
	for (i=0; i < document.form.Demandeur.length; i++)
	{
		if (document.form.Demandeur[i].checked)
		{
			Demandeur = document.form.Demandeur[i].value ;
		}
    }
	for (i=0; i < document.form.Mandant.length; i++)
	{
		if (document.form.Mandant[i].checked)
		{
			Mandant = document.form.Mandant[i].value ;
		}
	}
	
	if (Demandeur == "")
	{
		alert("Precisez qui vous êtes.");
		return false;	
	}
	if (document.form.Civilite.value == "")
	{
		alert("Votre civilité est obligatoire.");
		return false;	
	}
	if (document.form.DemandeurAdministration.value == "")
	{
		alert("Le nom de votre organisme est obligatoire.");
		return false;	
	}
		
	if (document.form.Adresse1.value == "")
	{
		alert("L'adresse est obligatoire.");
		return false;	
	}	
	if (document.form.CP.value == "")
	{
		alert("Le code postal est obligatoire.");
		return false;	
	}	
	if (document.form.Ville.value == "")
	{
		alert("La nom de la ville est obligatoire.");
		return false;	
	}	
	if (document.form.Pays.value == "")
	{
		alert("Le nom du pays est obligatoire.");
		return false;	
	}
	if (document.form.Email.value == "")
	{
		alert("L'adresse courriel est obligatoire.");
		return false;	
	}		
	if (document.form.NomMandant.value == "")
	{
		alert("Le nom de la personne vous ayant donné mandat est obligatoire.");
		return false;	
	}		
	if (document.form.PrenomsMandant.value == "")
	{
		alert("Les prénoms de la personne vous ayant donné mandat sont obligatoires.");
		return false;	
	}
	if (Mandant == "")
	{
		alert ("La qualité du mandant est obligatoire");
		return false;
	}
	if ((Mandant == "Autre lien :") && (document.form.MandantParent.value == ""))
	{
		alert ("Precisez autre lien de parenté");
		return false;
	}
	if ((Mandant == "Autre cas :") && (document.form.MandantAutre.value == ""))
	{
		alert ("Precisez autre cas");
		return false;
	}
	if (TypeD == "")
	{
		alert("Le type d'extrait est obligatoire.");
		return false;	
	}
	if (Acte == "")
	{
		alert("Le type d'acte est obligatoire.");
		return false;	
	}
	if (document.form.DateDJ.value == "")
	{
		alert("Le jour de l'évènement est obligatoire.");
		return false;	
	}
	if (document.form.DateDM.value == "")
	{
		alert("Le mois de l'évènement est obligatoire.");
		return false;	
	}
	if (document.form.DateDA.value == "")
	{
		alert("L'année de l'évènement est obligatoire.");
		return false;	
	}
	
	var ret = ControlDate(document.form.DateDA.value,document.form.DateDM.value,document.form.DateDJ.value);
	if (ret.length)
	{
		alert("Date d'évènement ("+ document.form.DateDJ.value+"/"+document.form.DateDM.value+"/"+document.form.DateDA.value+ ") incorrecte.\n"+ ret);
		return false;	
	}				

	if (document.form.LieuD.value == "")
	{
		alert("Le lieu de l'évènement est obligatoire.");
		return false;	
	}	

	if (document.form.NomD.value == "")
	{
		alert("Le nom de naissance du titulaire de l'actede est obligatoire.");
		return false;	
	}						
	if (document.form.PrenomsD.value == "")
	{
		alert("Les prénoms du titulaire de l'acte sont obligatoires.");
		return false;	
	}	

	// En fonction du type de document demandé ( copie intégrale, extrait avec filiation ) la filiation est obligatoire
	if ((TypeD == "extrait avec filiation") || (TypeD == "copie intégrale"))
	{
		if (document.form.NomPere.value == "")
		{
			alert("Le nom du père de la personne demandée est obligatoire ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
			return false;	
		}						
		if (document.form.PrenomsPere.value == "")
		{
			alert("Les prénoms du père de la personne demandée sont obligatoires ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
			return false;	
		}						
		if (document.form.NomMere.value == "")
		{
			alert("Le nom de la mère de la personne demandée est obligatoire ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
			return false;	
		}						
		if (document.form.PrenomsMere.value == "")
		{
			alert("Les prénoms de la mère de la personne demandée sont obligatoires ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
			return false;	
		}						
	}
	// En fonction du type de l'acte demandé ( mariage ) les renseignements sur le conjoint sont obligatoires
	if (Acte == "MA")
	{
		if (document.form.NomConjoint.value == "")
		{
			alert("Le nom du conjoint est obligatoire ( Lors d'une demande d'acte de mariage, l'identité du conjoint est obligatoire )");
			return false;	
		}						
		if (document.form.PrenomsConjoint.value == "")
		{
			alert("Les prénoms du conjoint sont obligatoires ( Lors d'une demande d'acte de mariage, l'identité du conjoint est obligatoire )");
			return false;	
		}
		
		if ((TypeD == "extrait avec filiation") || (TypeD == "copie intégrale"))
		{
			if (document.form.NomPereConjoint.value == "")
			{
				alert("Le nom du père du conjoint de la personne demandée est obligatoire ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
				return false;	
			}						
			if (document.form.PrenomsPereConjoint.value == "")
			{
				alert("Les prénoms du père du conjoint de la personne demandée sont obligatoires ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
				return false;	
			}						
			if (document.form.NomMereConjoint.value == "")
			{
				alert("Le nom de la mère du conjoint de la personne demandée est obligatoire ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
				return false;	
			}						
			if (document.form.PrenomsMereConjoint.value == "")
			{
				alert("Les prénoms de la mère du conjoint de la personne demandée sont obligatoires ( Lors d'une demande de copie intégrale ou d'un extrait avec filiation, la filiation est obligatoire )");
				return false;	
			}						
		}								
	}
			
	return true;
}
// finfunction ControlerDemandeA()


// controle format d'une date
// renvoie un message d'erreur si il y'a lieu
// sinon retourne une chaine vide
function ControlDate(a,m,j)
{
	var jour = j;
	var mois = m;
	var annee = a;
		
	if (!ControlerNombre(jour))
	{
		return  "Format incorrect. Le format attendu est JJ/MM/AAAA.";
	}
	if (!ControlerNombre(mois))
	{
		return  "Format incorrect. Le format attendu est JJ/MM/AAAA.";
	}		
	if (!ControlerNombre(annee))
	{
		return  "Format incorrect. Le format attendu est JJ/MM/AAAA.";
	}		
	if (jour < 1 || jour > 31)
	{
		return  "Format incorrect. Le jour doit être compris entre 1 et 31.";			
	}
	if (mois < 1 || mois > 12)
	{
		return  "Format incorrect. Le mois doit être compris entre 1 et 12.";
	}		
	var cd = new Date();
	var cy = cd.getYear();
	if (cy < 1000)
		cy = cy + 1900;
	if (annee < 1500 || annee > cy )
	{
		return  "Format incorrect. L'année doit être comprise entre 1500 et "+cy+".";
	}
	if (mois == 2 )
	{
		var nb = 28;
		if (annee / 4 == Math.floor(annee / 4))
		{
			nb = 29;
			if (annee / 100 == Math.floor(annee / 100))
			{
				nb = 28;
				if (annee / 400 == Math.floor(annee / 400))
				{
					nb = 29;
				}
			}
		}
		if (jour >	nb) 
		{
			return "Le mois concerné ne contient que "+ nb +" jours.";
		}
	}					
	if (mois ==  4 && jour > 30) return "Le mois concerné ne contient que 30 jours.";
	if (mois ==  6 && jour > 30) return "Le mois concerné ne contient que 30 jours.";
	if (mois ==  9 && jour > 30) return "Le mois concerné ne contient que 30 jours.";
	if (mois == 11 && jour > 30) return "Le mois concerné ne contient que 30 jours.";
				
	return "";
}
//fin function ControlDate(a,m,j)

// retourne true si la chaine passée est composé uniquement de chiffres
function ControlerNombre(str)
{
	for (i = 0; i<str.length; i++)
	{
		if (str.charAt(i) < '0' || str.charAt(i) >'9')
			return false;
	}
	return true;
}
// fin function ControlerNombre(str)


// retourne true si la chaine passée est un code de département francais
function ControlerDepartement(str)
{

	switch(str)
	{
	case "01":
	case "02":
	case "03":
	case "04":
	case "05":
	case "06":
	case "07":
	case "08":
	case "09":
	case "10":
	case "11":
	case "12":
	case "13":
	case "14":
	case "15":
	case "16":
	case "17":
	case "18":
	case "19":
	case "20":
	case "21":
	case "22":
	case "23":
	case "24":
	case "25":
	case "26":
	case "27":
	case "28":
	case "29":
	case "2A":
	case "2B":
	case "30":
	case "31":
	case "32":
	case "33":
	case "34":
	case "35":
	case "36":
	case "37":
	case "38":
	case "39":
	case "40":
	case "41":
	case "42":
	case "43":
	case "44":
	case "45":
	case "46":
	case "47":
	case "48":
	case "49":
	case "50":
	case "51":
	case "52":
	case "53":
	case "54":
	case "55":
	case "56":
	case "57":
	case "58":
	case "59":
	case "60":
	case "61":
	case "62":
	case "63":
	case "64":
	case "65":
	case "66":
	case "67":
	case "68":
	case "69":
	case "70":
	case "71":
	case "72":
	case "73":
	case "74":
	case "75":
	case "76":
	case "77":
	case "78":
	case "79":
	case "80":	
	case "81":
	case "82":
	case "83":
	case "84":
	case "85":
	case "86":
	case "87":
	case "88":
	case "89":
	case "90":	
	case "91":
	case "92":
	case "93":
	case "94":
	case "95":
	case "971":
	case "972":
	case "973":
	case "974":
	case "975":
	case "984":
	case "985":
	case "986":
	case "987":
	case "988":
		return false;
	
	};
	return true;
}
// fin function ControlerDepartement(str)


