//--------------------------------------------------------
//------------- Controle des champs date -----------------
//--------------------------------------------------------
var separateur="/"; // separateur entre jour/mois/annee

function CheckDate(d) {
      // 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=1990; // année mini
      var amax=2050; // année maxi
      
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      var ok=1;
      if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
         alert("Le jour n'est pas correct."); ok=0;
      }
      if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
         alert("Le mois n'est pas correct."); ok=0;
      }
      if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
         alert("L'année n'est pas correcte."); ok=0;
      }
      if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
         alert("Les séparateurs doivent être des "+separateur); ok=0;
      }
      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;
         }
      }
      return ok;
   }


//============================================================================
// Cette fonction vérifie le format JJ/MM/AA saisi et la validité de la date.
// Le séparateur est défini dans la variable separateur 
//============================================================================
function CheckDateAnneeSur2(d) {
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      var ok=1;
      if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
         alert("Le jour n'est pas correct."); ok=0;
      }
      if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
         alert("Le mois n'est pas correct."); ok=0;
      }
      if ( (isNaN(a)) && (ok==1) ) {
         alert("L'année n'est pas correcte."); ok=0;
      }
      if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
         alert("Les séparateurs doivent être des "+separateur); ok=0;
      }
      if (ok==1) {
         a='20' + a //passage à 4 caractères pour l'année
         var d2=new Date(a,m-1,j);
         j2=d2.GetDate();
         m2=d2.getMonth()+1;
         a2=d2.getYear();
         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date "+d+" n'existe pas !");
            ok=0;
         }
      }
      return ok;
   }

//--------------------------------------------------------
//------------- Controle date 2 > date 1 -----------------
//--------------------------------------------------------
function CompareDate(date1,date2) {
	var j1=(date1.substring(0,2));
	var m1=(date1.substring(3,5));
    var a1=(date1.substring(6));
    var j2=(date2.substring(0,2));
	var m2=(date2.substring(3,5));
    var a2=(date2.substring(6));
    
    var d1=new Date(a1,m1-1,j1);
    var d2=new Date(a2,m2-1,j2);
    if (d2 < d1){
		alert('la date de fin doit être supérieure à la date de début');
		return false;
    }
    return true;
}

//---------------------------------------------------------------
//---------- Le caractère tapé doit être numérique --------------
//---------------------------------------------------------------
function TestToucheNumerique(){
// valeurs ASCII des chiffres
if ((window.event.keyCode > 57 || window.event.keyCode < 48) && window.event.keyCode != 13) 	{
	alert('Le caractère saisie doit être numérique.');

	return false;
	}
	return true;
}


//--------------------------------------------------------------
// Vérifier la validité d'une E-Mail 
//-----------------------------------------------------------

function CheckEmail(emailStr) {
var strChaineok = RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,6}$");
//var strChaineok=/^([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$/;
	if(strChaineok.test(emailStr)) {
    	return true;
      } else {
	     return false;
      }
return true;
}

//--------------------------------------------------------------
// Vérifier la validité d'un code déchet '99 99 99'
//-----------------------------------------------------------

function CheckCodeDechet(strCode) {
	var strChaineok=/^[0-9][0-9][ ][0-9][0-9][ ][0-9][0-9]/;
	if(strChaineok.test(strCode)) {
    	return true;
      } else {
	     return false;
      }
return true;
}

//--------------------------------------------------------------
//------ Test de nullité d'un champ ----------------
// en entrée : obj = l'objet à tester
// en sortie : true ou false
//--------------------------------------------------------------
function TestChampsNul(oChamp,sNom){
	if (oChamp.value == '')
	{	
		alert('Le champ ' + sNom + ' est obligatoire');
		oChamp.focus();
		return false;
	}
return true;
}

//--------------------------------------------------------------
//------ Test taille d'un champ ----------------
// en entrée : 
// en sortie : 
//--------------------------------------------------------------
function TestTailleChampOnKeyPress(thisElement,thisEvent,NbLgnMax,NbCarMax){

if (thisElement.value.length >= NbCarMax){
	alert(NbCarMax +' caractères maximum !');
	return false;
	}

var kCode = (navigator.appName == "Netscape") ? thisEvent.which : thisEvent.keyCode;
// si l'utilisateur tappe sur 'Entrée'
if (kCode == 13){
	var NbRetourChariot=0;
	txtQuestion=thisElement.value;
	txtQuestionLng=thisElement.value.length;
	for (i=0;i<txtQuestionLng;i++)
		{
		if (txtQuestion.charAt(i) == '\n')
			NbRetourChariot++;
		}
	if (NbRetourChariot==NbLgnMax-1)
		{
		alert(NbLgnMax +' lignes maximum !');
		return false;
		}
	return true;			
	}		
return true;
}

//--------------------------------------------------------------
//------ Test taille d'un champ ----------------
// en entrée : 
// en sortie : 
//--------------------------------------------------------------
function TestTailleChampOnKeyUp(thisElement,NbLgnMax,NbCarMax){
//Test sur le nombre de caractères
txtQuestion=thisElement.value;
txtQuestionLng=thisElement.value.length;
if (txtQuestionLng > NbCarMax)
	{
	alert(NbCarMax + ' caractères maximum !');
	thisElement.value = thisElement.value.substr(0,NbCarMax);
	return true;
	}

// on limite la taille des réponses à NbCarMax caractères
// cas où l'utilisateur a fait du copier/coller
	var NbRetourChariot=0;
	
	for (i=0;i<txtQuestionLng;i++){
		if (txtQuestion.charAt(i) == '\n')
			{NbRetourChariot++;
			if (NbRetourChariot==NbLgnMax){
				alert(NbLgnMax +' lignes maximum');
				thisElement.value = txtQuestion.substring(0,i-1);	
				return true;
				break;
			}
			}
		}


return true;
}
//---------- FIN -----------------

