// fonction qui contrôle des champs qui sont en saisies obligatoire

function isSaisieObligatoire (form, data, nbdata, messageAlerte)
{
	for (i=0; i<nbdata; i++)
	{
		if (document.form.data[i]=='')
		{
			alert('vous devez saisir le champ ' + messageAlerte[i]);
			return false;
		}
	}
	return true;
}


// fonction qui valide si le champ contient bien un numéro de téléphone

function isTelephone(valeur, longueur)
{
	if ((valeur=='') ||(valeur.length != longueur))
	{
		alert('Le numero de telephone ' + valeur + ' est erroné, mettre ' + longueur + ' chiffres');
		return false;
	}
	
	var chaine = new String(valeur)
	if (chaine.charAt(0) == '0')
	{valeur  = chaine.slice(1,valeur.length);}
	
	if (!isInt(valeur))
	{
		alert('Le numero de telephone ' + valeur + ' est erroné, mettre ' + longueur + ' chiffres');
		return false;
	}
	
return true;
}


// fonction qui valide si le champ contient bien un code postal

function isCodePostal(valeur)
{
	if ( (valeur=='') || (valeur.length != 5))
	{
		alert('le code postal ' + valeur + ' est erroné, mettre 5 chiffres');
		return false;
	}
	var chaine = new String(valeur)
	
	if (chaine.charAt(0) == '0')
	{valeur  = chaine.slice(1,valeur.length);}
	
	if (!isInt(valeur))
	{
		alert('le code postal ' + valeur + ' est erroné, mettre 5 chiffres');
		return false;
	}
return true;
}


// fonction qui retourne une chaine avec un formatage, ajout de 0

function formater(valeur,longueur)
{
	if (valeur.length < longueur)
	{
		var i = (longueur - valeur.length);

		for (j=1; j<=i; j++)
		{
			valeur = '0' + valeur;
		}
	}
		return valeur;
}


// fonction utilisée pour les transitions de pages

function pageSuivante(nomFichier, nomForm)
{
	var ouAller = (nomFichier + ".htm");
	var forms = nomForm;

	 if (ouAller != "" )
		{
			document.forms.action = ouAller;
			document.forms.submit();
			return true;
		}
	return false;
}


// création d'un fenetre HTML en pop-up

function appelPage(fichier,titre,largeur,hauteur) {
  var win_opt= "toolbar=0,location=0,directories=0,status=0,menubar=0,";
  win_opt += "scrollbars=1,resizable=1,copyhistory=0,";
  win_opt += "width=" + largeur + ",height=" + hauteur;
  NewWindow= window.open(fichier,titre,win_opt);
  NewWindow.creator= self;
}

// fonction de retour
function retour()
{
	parent.history.back();
}

// nettoyage d'une donnée dans un panier

function deleteData(panier,nom) {
  top.panier[nom] = null ;
}


// valide un champ numérique entier

function isInt(x)
{
var y="";
	if (x)
	{
		var y = parseInt(x) ;
	}

	if (isNaN(y) || y.toString() != x)
	{
 		return false ;
	}
	else
		return true;
}

function isIntBegin0(x, len)
{
var y="";
var resultat = "";
	if (x)
	{
		var y = parseFloat(x) ;
	}

	resultat = formater (y, len);

	if (isNaN(y) || resultat != x)
	{
 		return false ;
	}
	else
		return true;
}

// valide un champ numérique entier avec gestion d'un message


function isIntMSG(x, messageAlerte)
{
var y="";
	if (x)
	{
		var y = parseInt(x) ;
	}
	if (isNaN(y) || y.toString() != x)
	{
	if (messageAlerte != "")
		alert (x + ' est un nombre invalide pour le champ '+ messageAlerte);
	else
		alert (x + ' est un nombre invalide pour ce champ.');
	return false ;
	}
	else
		return true;
}


// valide un champ numérique float

function isFloat(x) {
var y="";
  if (x) { var y = parseFloat(x) ;}
  if (isNaN(y) || y.toString() != x) { alert(x + ' n est un nombre invalide pour ce champ.') ;return false ; }
  else  return true;
}

// valide un champ numérique float avec gestion d'un message

function isFloatMSG(x, messageAlerte) {
var y="";
  if (x) { var y = parseFloat(x) ;}
  if (isNaN(y) || y.toString() != x) 
  {	
  	if (messageAlerte != "")
		alert (x + ' est un nombre invalide pour le champ '+ messageAlerte);
	else
		alert (x + ' est un nombre invalide pour ce champ.');
	return false ;
  }
  else  return true;
}
////////////////
// fonction date

function dateJJ (JJ, messageAlerte)
{
	if (!isIntBegin0(JJ, 2))
	{
		if (messageAlerte != "")
			alert ('le jour '+JJ+' du champ '+messageAlerte+' n\'est pas un nombre valide');
		else
			alert ('le jour '+JJ+' n\'est pas un nombre valide');
		return null;
	}
	else
	{
		if (JJ < 1 || JJ > 31)
		{
			if (messageAlerte != "")
				alert ('le jour '+JJ+' du champ '+messageAlerte+' est erroné');
			else
				alert ('le jour '+JJ+' est erroné');
			return null;
		}
	}
	return formater (JJ, 2);
}

function dateMM (MM, messageAlerte)
{
	if (!isIntBegin0(MM, 2))
	{
		if (messageAlerte != "")
			alert ('le mois '+MM+' du champ '+messageAlerte+' n\'est pas un nombre valide');
		else
			alert ('le mois '+MM+' n\'est pas un nombre valide');
		return null;
	}
	else
	{
		if (MM < 1 || MM > 12)
		{
			if (messageAlerte != "")
				alert ('le mois '+MM+' du champ '+messageAlerte+' est erroné');
			else
				alert ('le mois '+MM+' est exroné');
			return null;
		}
	}
	return formater (MM, 2);
}

function dateAA (AA, limiteMin, limiteMax, messageAlerte)
{
	if (!isIntBegin0(AA, 2))
	{
		if (messageAlerte != "")
			alert ('l\'annee '+AA+' du champ '+messageAlerte+' n\'est pas un nombre valide');
		else
			alert ('l\'annee '+AA+' n\'est pas un nombre valide');
		return null;
	}
	else
	{
		if (AA < limiteMin || AA > limiteMax)
		{
			if (messageAlerte != "")
				alert ('l\'annee '+AA+' du champ '+ messageAlerte+' doit être comprise entre '+ limiteMin +' et '+ limiteMax);
			else
				alert ('l\'annee '+AA+' doit être compise entre '+ limiteMin +' et '+ limiteMax);
			return null;
		}
	}
	return formater (AA, 2);
}

//##########################################################
function dateAAAA (AAAA, limiteMin, limiteMax, messageAlerte)
{
	if (!isIntBegin0(AAAA, 4))
	{
		if (messageAlerte != "")		{alert ('l\'annee '+AAAA+' '+messageAlerte+' n\'est pas un nombre valide');}
		else							{alert ('l\'annee '+AAAA+' n\'est pas un nombre valide');}
		return null;
	}
	else
	{
		if (AAAA < limiteMin || AAAA > limiteMax)
		{
			if (messageAlerte != "")	{alert ('l\'annee '+ messageAlerte+' doit être comprise entre '+ limiteMin +' et '+ limiteMax);}
			else						{alert ('l\'annee '+AAAA+' doit être comprise entre '+ limiteMin +' et '+ limiteMax);}
			return null;
		}
	}
return formater (AAAA, 4);
}



//##########################################################
function dateAAAA_SSMSG (AAAA, limiteMin, limiteMax)
{
	if (!isIntBegin0(AAAA, 4))
	{
		return null;
	}
	else
	{
		if (AAAA < limiteMin || AAAA > limiteMax)
		{
			return null;
		}
	}
	return formater (AAAA, 4);
}

function dateJJMMAA (JJ, MM, AA, limiteMin, limiteMax, inverse, messageAlerte)
{
var bRet=false;
var a = 0;
var j = 0;
var m = 0;

j = dateJJ(JJ,messageAlerte);

	if (j != null)
	{
		if ((m = dateMM(MM, messageAlerte)) != null)
		{
			if ((a = dateAA (AA, limiteMin, limiteMax, messageAlerte))!=null)
			{
				if((MM<=7 && MM%2==1) || (MM>=8 && MM%2==0))
   				bRet=true ;
   				else if(MM!=2 && JJ<=30)
   				bRet=true ;
   				else
   				{
   					if(MM==2)
	   				{
   					var lim=28 ;
   					if(AA%4==0)
   					lim++ ;
   					if(JJ<=lim)
	   				bRet=true ;
	   				}
    			}
		   		if (bRet)
	    		{
   					if (inverse)
   					return a + m + j;
   					else
  	 				return j + m + a;
    			}
    			else
    			{
	     		if (messageAlerte != null)
      			alert ('la date '+j+m+a+' du champ '+messageAlerte+' est erronee');
     			else
    	  		alert ('la date '+j+m+a+' est erronee');
  	   			return null;
    			}
			}
		}
	}
return null;
}

function dateJJMMAAAA (JJ, MM, AAAA, limiteMin, limiteMax, inverse, messageAlerte)
{
var bRet=false;
var a = 0;
var j = 0;
var m = 0;

j = dateJJ(JJ,messageAlerte);

	if (j != null)
	{
		if ((m = dateMM(MM, messageAlerte)) != null)
		{
			if ((a = dateAAAA (AAAA, limiteMin, limiteMax, messageAlerte))!=null)
			{
				if((MM<=7 && MM%2==1) || (MM>=8 && MM%2==0))
   				bRet=true ;
   				else if(MM!=2 && JJ<=30)
   				bRet=true ;
   				else
   				{
   					if(MM==2)
	   				{
   					var lim=28 ;
   					if(AAAA%4==0)
   					lim++ ;
   					if(JJ<=lim)
	   				bRet=true ;
	   				}
    			}
		   		if (bRet)
	    		{
   					if (inverse)
   					return a + m + j;
   					else
  	 				return j + m + a;
    			}
    			else
    			{
	     		if (messageAlerte != null)
      			alert ('la date '+j+m+a+' du champ '+messageAlerte+' est erronee');
     			else
    	  		alert ('la date '+j+m+a+' est erronee');
  	   			return null;
    			}
			}
		}
	}
return null;
}

// somme

function somme (panier, fixe1, variable1, limiteVariable1, fixe2, variable2, limiteVariable2)
{
	var i, j, total=0;
	for (i = variable1; i < limiteVariable1; i++)
	{
		if (variable2 == "")
		{
			data = fixe1 + i + fixe2;
			if (top.panier[data].valeur != "")
				total = eval (total) + eval(top.panier[data].valeur);
		}
		else
		{
			for (j = variable2; j < limiteVariable2; j++)
			{
				data = fixe1 + i + fixe2 + j;
				if (top.panier[data].valeur != "")
					total = eval (total) + eval(top.panier[data].valeur);
			}
		}
	}
}


function checkRC2(v1,v2,v3,c1,c2,c3) 
{
	// Test de cohérence des cases saisies, concernant les renseignements complémentaires sur les revenus d'activité
	if(v1=="vide") 
	{
		if(v2==true) 
		{
			if(v3!="") {
				alert("Vous ne pouvez à la fois cocher " + c2 + " et saisir " + c3 + "."); 
				return false ;
			}
		}			
	return true ;
	}
}
