function masqueSaisieDate(obj)
{
	var ch;
	var ch_gauche, ch_droite;
	
	// Quel est le contenu de la zone de saisie passé en paramètre
	ch = obj.value;
	//ch = trim(ch.toString());
	
	// On découpe la chaine su tous ce qui n'est pas un nombre
	e1 = ch.split(/[^0-9]/);
	
	// Dans quelle partie de zone se trouve-t-on
	p = (e1.length > 0) ? e1.length-1 : 0;

	// Quel est le dernier caractère saisi	
	lastCar = ch.charAt(ch.length-1);
	lastCarInit = lastCar;
	
	// Ce caractère ne doit pas etre un caractère alpha sauf le /
	while(isNaN(lastCar) && (lastCar!="/"))
	{
		ch = ch.substring(0,ch.length-1);
		obj.value = ch;
		lastCar = ch.charAt(ch.length-1);
	}
	
	lastCar = lastCarInit;
	lastCarPrec = ch.charAt(ch.length-2);
	
	if((lastCarPrec==lastCar) && (lastCar=="/"))
		ch = ch.substring(0,ch.length-1);
		
	
	
	// Si p=2 cela signifi que deux / on été saisi, le dernier caractère ne peut pas etre un /
	while((p==2) && (lastCar=="/"))
	{
		ch = ch.substring(0,ch.length-1);
		obj.value = ch;
		lastCar = ch.charAt(ch.length-1);
	}

	// Si on est dans la partie 0 -> Si on saisi un nombre supérieur à 3 on complète par un 0
	lgJour = (e1[p]).toString().length;
	valJour = (parseInt(e1[p],10));
 	if((p==0) && (valJour>3) && (lgJour==1))
 	{	
 		e1[p] = "0"+e1[p];
 		ch = '';
 		for(i=0;i<e1.length;i++)
 			ch = ch+e1[i];
 	}
	
 	// Si on est dans la partie 1 -> Si on saisi un nombre supérieur à 1 on complète par un 0
	lgMois = (e1[p]).toString().length;
 	valMois = (parseInt(e1[p],10));
 	if((p==1) && (valMois>1) && (lgMois==1))
 	{	
	 	e1[p] = "0"+e1[p];
 		ch = '';
 		for(i=0;i<e1.length;i++)
 			ch = ch+e1[i];
 	}
 	
		
	// Quel est le dernier caractère saisi
	if(lastCar=="/")
	{			
		// Si on saisi un / et que la parie du masque précédenet n'est composé que d'un caractère on complète avec des 0	
		if((e1.length>0) && (e1[p].length==1))
			e1[p] ="0"+e1[p];
		
		// On reconstitue la chaine	
		ch = '';
		for(i=0;i<e1.length;i++)
			ch = ch+e1[i];
		
		// a laquelle on rajpute le dernier caractère
		ch = ch+lastCar;
		
		// On ne peut pas saisir un slash en début de chiane ou 2 / consécutifs
		if((e1.length==0) || (e1[p].length==0))
			ch = ch.substring(0,ch.length-1);
	}

	
	// La zone date doit etre au format JJ/MM/AAAA. Le 3ième et 6ième caractère doit être un /
	// C'est ce que l'on fait dans cette partie. Si l'user ne l'a pas saisi, on le rempli automatiquement
	
	// Gestion deu premier slash
	if ( ( (ch.slice(2,3)) != ("/") ) && (ch.length >= 2) )
	{
  		ch_gauche = ch.slice(0,2);
  		ch_droite = ch.slice(2);
  		ch = ch_gauche + "/" + ch_droite;
	}
	
	// Gestion du second slash
	if ( ( (ch.slice(5,6)) != ("/") ) && (ch.length >= 5) )
	{
  		ch_gauche = ch.slice(0,5);
  		ch_droite = ch.slice(5);
  		ch = ch_gauche + "/" + ch_droite;
	}
	
	// On met dans la zone la nouvelle valeur
	obj.value = ch;
	
  	return;
}


// function checkDate
// Fonction qui vérifie la validité de la date passée en paramètre
function checkDate(obj)
{	
	var d;
	d = obj.value;
		
	if(d!='')
	{
	
		// Une date doit être au format JJ/MM/AAAA et doit donc faire une longieur de  carcatères
		if(d.length<10)
		{
			alert("Une date doit respecter le format JJ/MM/AAAA");
			obj.focus();
		}
		else
		{
			// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
      		// Le séparateur est défini dans la variable separateur
      		var amin=1900; // année mini
      		var amax=2900; // année maxi
      		var j=(d.substring(0,2));
      		var m=(d.substring(3,5));
      		var a=(d.substring(6));
      		var ok=1;
      		
      		j = parseInt(j,10);
      		m = parseInt(m,10);
      		a = parseInt(a,10);


      			
      		// Contrôle du jour
      		if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) )
      		{
         		alert("La date saisie est incorrecte !\n Le jour saisi '"+j+"' n'est pas correct. Il doit etre compris entre 1 et 31"); ok=0;
      		}
      
      		// Contrôle du mois
      		if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
  		       	alert("La date saisie est incorrecte !\n Le mois saisi '"+m+"' n'est pas correct. Il doit être compris entre 1 et 12"); ok=0;
      		}
      
      		// Controle de l'année
      		if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
         		alert("La date saisie est incorrecte !\n L'année saisie '"+a+"' n'est pas correcte. Elle doit être comprise entre "+amin+" et "+amax); ok=0;
      		}
      
      		// Contrôle de la validité du jour par rapport au mois
      		if((j>31) && ((m==1) || (m==3) || (m==5) || (m==7) || (m==8) || (m==10) || (m==12)) && (ok==1))
      		{
	      		alert("La date saisie est incorrecte !\n Le jour saisi '"+j+"' n'est pas correct. Le mois "+m+" n'a pas 31 jours"); ok=0;
      		}      		
      		else if((j>30) && ((m==4) || (m==6) || (m==9) || (m==11)) && (ok==1) && (ok==1))
      		{
	      		alert("La date saisie est incorrecte !\n Le jour saisi '"+j+"' n'est pas correct. Le mois "+m+" n'a pas 30 jours"); ok=0;
      		}
      		else if((j>29) && (m==2))
      		{
	      		alert("La date saisie est incorrecte !\n Le mois de février n'a pas plus de 29 jours"); ok=0;
      		}
      		else if ((m==2) && (j>28) && (!(((a%4==0) && (a%100!=0)) || (a%400==0))) && (ok==1))
      		{
	      		alert("La date saisie est incorrecte !\n L'année "+a+" n'est pas bissextile"); ok=0;
      		}
      		
      		// Contrôle de la date
      		if (ok==1)
      		{
         		var d2=new Date(a,m-1,j);
         		j2=d2.getDate();
         		m2=d2.getMonth()+1;
         		a2=d2.getYear();
         		if (a2<=100) {a2=1900+a2}
         		if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            		alert("La date "+d+" n'existe pas !");
            		ok=0;
            		obj.focus();
        	 	}
      		}
      		else
      		{
	      		obj.focus();	
      		}
   		}
   }
}




function checkDate2(obj)
{
	var d;
	d = obj.value;
	
	
	
	if(d!='')
	{
		// Une date doit être au format MM/AAAA et doit donc faire une longieur de  carcatères	
		var resultat = d.search(/[0-9][0-9]\/[0-9][0-9][0-9][0-9]/);
		if((resultat==-1) || (d.length<7))
		{
			alert("Une date doit respecter le format MM/AAAA");
			obj.focus();
		}
		else
		{
			// Cette fonction vérifie le format MM/AAAA saisi et la validité de la date.
      		// Le séparateur est défini dans la variable separateur
      		var amin=1900; // année mini
      		var amax=2900; // année maxi
      		var m=(d.substring(0,2));
      		var a=(d.substring(3));
      		var j = 1;
      		var ok=1;
      		
      		m = parseInt(m,10);
      		a = parseInt(a,10);
      
      		// Contrôle du mois
      		if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
  		       	alert("La date saisie est incorrecte !\n Le mois saisi '"+m+"' n'est pas correct. Il doit être compris entre 1 et 12"); ok=0;
      		}
      
      		// Controle de l'année
      		if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
         		alert("La date saisie est incorrecte !\n L'année saisie '"+a+"' n'est pas correcte. Elle doit être comprise entre "+amin+" et "+amax); ok=0;
      		}
      
      		// Contrôle de la date
      		if (ok==1)
      		{
         		var d2=new Date(a,m-1,j);
         		j2=d2.getDate();
         		m2=d2.getMonth()+1;
         		a2=d2.getYear();
         		if (a2<=100) {a2=1900+a2}
         		if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            		alert("La date "+d+" n'existe pas !");
            		ok=0;
            		obj.focus();
        	 	}
      		}
      		else
      		{
	      		obj.focus();	
      		}
   		}
   }
}





function masqueSaisieDate2(obj)
{
	return;
	var ch;
	var ch_gauche, ch_droite;
	
	// Quel est le contenu de la zone de saisie passé en paramètre
	ch = obj.value;
	//ch = trim(ch.toString());
	
	// On découpe la chaine sur tous ce qui n'est pas un nombre
	e1 = ch.split(/[^0-9]/);
	
	// Dans quelle partie de zone se trouve-t-on
	p = (e1.length > 0) ? e1.length-1 : 0;	
	
	// Quel est le dernier caractère saisi	
	lastCar = ch.charAt(ch.length-1);
	lastCarInit = lastCar;
	
	if((lastCar=="/") && (ch.length==1))
	{
			obj.value = '';
			return;
	}
	
	// Ce caractère ne doit pas etre un caractère alpha sauf le /
	while(isNaN(lastCar) && (lastCar!="/"))
	{
		ch = ch.substring(0,ch.length-1);
		ch = ch.replace(/\/+/gi, "/");
		obj.value = ch;
		return;
	}
	
	
	// On a déjà saisi un / et on saisit un autre
	if((p>0) && (lastCar=="/"))
	{
		ch = ch.substring(0,ch.length-1);
		ch = ch.replace(/\/+/gi, "/");
		obj.value = ch;
		return;
	}
	
	
	lastCar = lastCarInit;
	lastCarPrec = ch.charAt(ch.length-2);
	
	if((lastCarPrec==lastCar) && (lastCar=="/"))
	{
		ch = ch.substring(0,ch.length-1);
		ch = ch.replace(/\/+/gi, "/");
		obj.value = ch;
		return;
	}
	
	// Si on est dans la partie 0 -> La longueur du mois fait deux car
	lgMois = (e1[0]).toString().length;
 	if((p==0) && (lgMois==2))
 	{	
 		ch = ch+'/';
 		obj.value = ch;
 		ch = ch.replace(/\/+/gi, "/");
		return;
 	}
	
 	// Si on est dans la partie 0 -> Si on saisi un nombre supérieur à 1 on complète par un 0
	lgMois = (e1[p]).toString().length;
 	valMois = (parseInt(e1[p],10));
 	if((p==0) && (valMois>1) && (lgMois==1))
 	{	
	 	e1[p] = "0"+e1[p];
 		ch = '';
 		for(i=0;i<e1.length;i++)
 			ch = ch+e1[i];
 		ch = ch+'/';
 	}
 	
		
	// Quel est le dernier caractère saisi
	if(lastCar=="/")
	{			
		// Si on saisi un / et que la parie du masque précédenet n'est composé que d'un caractère on complète avec des 0	
		if((e1.length>0) && (e1[p].length==1))
			e1[p] ="0"+e1[p];
		
		// On reconstitue la chaine	
		ch = '';
		for(i=0;i<e1.length;i++)
			ch = ch+e1[i];
		
		// a laquelle on rajpute le dernier caractère
		ch = ch+lastCar;
		
		// On ne peut pas saisir un slash en début de chaine ou 2 / consécutifs
		if((e1.length==0) || (e1[p].length==0))
			ch = ch.substring(0,ch.length-1);
	}

	ch = ch.replace(/\/+/gi, "/");
	obj.value = ch;
	return;
	
	
	// La zone date doit etre au format MM/AAAA. Le 3ième doit être un /
	// C'est ce que l'on fait dans cette partie. Si l'user ne l'a pas saisi, on le rempli automatiquement
	
	// Gestion deu premier slash
	if ( ( (ch.slice(2,3)) != ("/") ) && (ch.length >= 2) )
	{
  		ch_gauche = ch.slice(0,2);
  		ch_droite = ch.slice(2);
  		ch = ch_gauche + "/" + ch_droite;
	}
	
	
	// On met dans la zone la nouvelle valeur
	obj.value = ch;
	return;
}


	function setValeurObjet(objet,valeur)
	{
		// L'objet passé en paramètre doit exister
		if(objet != null)
		{
			var typeObjet = objet.type;
			if(typeObjet=='text')
			{
				objet.value = valeur;	
			}

			if(typeObjet=='select-one')
			{
				for(i=0;i<objet.length;i++)
				{
					if(objet.options[i].value==valeur)
					{
						objet.options[i].selected=true
					}
				}
      		}
		}
	}
