

/*	Résultat :
	 d1 - d2 (différence en millisecondes)
*/
function differenceDate(d1, d2)	//d1 - d2
{
	var j1=(d1.substring(0,2));
	var m1=(d1.substring(3,5));
	var a1=(d1.substring(6));
	date1 = new Date(a1, m1, j1);

	var j2=(d2.substring(0,2));
	var m2=(d2.substring(3,5));
	var a2=(d2.substring(6));
	date2 = new Date(a2, m2, j2);
	
	return date1.getTime() - date2.getTime();
}

function isValidDate(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=1900; // année mini
  var amax=2010; // année maxi
  var separateur="/"; // separateur entre jour/mois/annee
  var j=(d.substring(0,2));
  var m=(d.substring(3,5));
  var a=(d.substring(6));
  var ok=1;
  if ( d=="" )	// si aucune valeur n'a été saisie
  	return true;
  if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) 
	 ok=0;
  if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) 
	 ok=0;
  if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) 
	 ok=0;
  if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) 
	 ok=0;
  if (ok==1) {
	 var d2=new Date(a,m-1,j);
	 j2=d2.getDate();
	 m2=d2.getMonth()+1;
	 a2=d2.getFullYear();
	 if (a2<=100) {a2=1900+a2}
	 if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
		ok=0;
	 }
  }
  if (ok==1)
  	return true;
  return false;
}




//fonction pour vérifier la date
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=1900; // année mini
      var amax=2050; // année maxi
      var separateur="/"; // separateur entre jour/mois/annee
      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.getFullYear();
         if (a2<=100) {a2=1900+a2}
         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date "+d+" n'existe pas !");
            ok=0;
         }
      }
      return ok;
   }
   
   //fonction pour le contrôle de champ qui va contenir un nombre
function controlerNombre(valeur, limites) {
   // contrôle si la valeur d'un champ est un nombre conforme 

   valeur = valeur.replace(" ", "");
   if (isNaN(valeur)) var ok = false;
   else {
       if (limites != "") {
           if (typeof limites == "string") 
               eval("ok = (" + valeur + " " + limites + ");");
           else if (limites.length == 2)    
               eval("ok = ((" + valeur + " " + limites[0] + ") && (" + valeur + " " + limites[1] + "));");
       }
       else var ok = true;
   }
   return ok;
}

 //fonction pour confirmer la suppression
function supprimer()
{
	var a=false;
	a=confirm("Suppression définitive");
	if(a)
		return true;
	else 
		return false;	
}
	

function isNumeric(sText)
//vérifie si la chaine envoyée est de type numérique
{
	sText = trim(sText);
	if (sText.length == 0)
		return true;

   var ValidChars = "0123456789.,";
   var IsNumber=true;
   var Char;


   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;  
}

function trim(s) 
{
  // Remove leading spaces and carriage returns
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}



/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 6;

function isInteger(s)
{   
	if (s.length == 0)
		return true;

	var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function isTexte(leTexte)
{
	n = leTexte.length;
	if (n==0)
		return true;
	for (i=0; i<n; i++)
	{
		if ( leTexte.charAt(i)=='\r' || leTexte.charAt(i)=='\n') //Retour chariot
			continue; 
		if ( leTexte.charAt(i)!=' ' &&
		     !isNaN(leTexte.charAt(i)) )
			return false; 
	}
	return true;
}

function isValidMail(mail)
{
	if (mail.length == 0)
		return true;
	else if (mail.length < 8)
		return false;
	if ( (mail.indexOf("@")>=0) && (mail.indexOf(".")>=0) ) 
		return true;
	else 
		return false;
}

function isURL(laURL)
{
	if (laURL.length == 0)
		return true;

	var chaine = laURL;
	chaine = chaine.toLowerCase();
	var pos = chaine.indexOf('http://', 0);
	if (chaine.length>0 && pos < 0)
			return false;
	return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function isPhoneNumber(strPhone)
{
	if (strPhone.length == 0)
		return true;

	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}



  //fct cocher/décocher pour un bloc de checkbox de type pChampX[]
  function cocherDecocher(nbCases, leChamp , idBase)
  {
		champ_etat = leChamp + '_etat';
		etat = document.getElementById(champ_etat).value;
		//faudra forcer le type de ETAT en bool
		if (etat == 'true')
			etat = true;
		else
			etat = false;
		for (i=0; i<nbCases; i++)
		{
			champ = leChamp +'_'+ idBase +'_' + i;
			document.getElementById(champ).checked = etat;
		}
		if (etat == true)
			etat = false;
		else
			etat = true;
		document.getElementById(champ_etat).value = etat;
  }

function isCaseCochee(leChamp, libChamp, nbCases)
	{
		k=0;
		for (i=0; i<nbCases; i++)
		{
			champ = leChamp + '_' + i;
			if (document.getElementById(champ).checked)
				k++;
		}
		if (k == 0)
		{
			alert("Veuillez cocher au moins une case '" + libChamp + "'" );
			return false;
		}
		return true;
	}
function isImage(leChamp)
{
	if (leChamp.value.length == 0)
		return true
	else
	{
		if((leChamp.value.lastIndexOf(".png") == -1) && (leChamp.value.lastIndexOf(".PNG") == -1) && (leChamp.value.lastIndexOf(".gif") == -1) && (leChamp.value.lastIndexOf(".GIF") == -1) && (leChamp.value.lastIndexOf(".jpg") == -1) && (leChamp.value.lastIndexOf(".JPG") == -1) && (leChamp.value.lastIndexOf(".jpeg") == -1) && (leChamp.value.lastIndexOf(".JPEG") == -1) && (leChamp.value.lastIndexOf(".bmp") == -1)  && (leChamp.value.lastIndexOf(".BMP") == -1) ) // verification si le fichier attaché est une image
		{
			return false;
		}
		else
			return true;
	}
}
/*
pour deplier le menu gauche
*/
function deplierMenu(nom)
{
	var nbr_menu;
	nbr_menu = document.getElementsByName(nom).length ;
	for(var i = 0 ; i < nbr_menu ; i++)
	{	
		if(document.getElementsByName(nom)[i].style.display == 'none')
			document.getElementsByName(nom)[i].style.display = 'block' ;
		else
			document.getElementsByName(nom)[i].style.display = 'none' ;	
	}	
	document.getElementById(nom).style.display = 'block';

}
