//************************************************************************
// efface les blancs en début et fin de chaine
//************************************************************************
function trim(str)
{
  var tmp  = str;
  
  var i = (tmp == null) ? 0 : tmp.length;

  while (i>0 && tmp.charAt(0)==" ")
  {
    tmp= tmp.substring(1, i);
    i= tmp.length;
  }

  while (i>0 && tmp.charAt(i-1)==" ")
  {
    tmp= tmp.substring(0, i-1);
    i= tmp.length;
  }

  return tmp;
}

//************************************************************************
// retourne vrai si la chaine comporte que des chiffres, des espaces,
// des points ou des parenthèses, sinon false
//************************************************************************
function isTelephoneFax(str)
{
  var lettre;
  var masque = "0123456789(). -";
  var nbMinimumDeChiffres = 10
  var nbMaximumDeChiffres = 10

  var i;

  //Etape 1 : Vérifier si la chaine saisie ne comporte pas de caractères illégaux :
  for(i=0; i<str.length; i++)
  {
    lettre = str.substring(i,i+1);
    if  (masque.indexOf(lettre)==-1)
    {
      alert('Le numéro de téléphone saisi est incorrect.');
      return false;
    }
  }
  
  //Etape 2 : Vérifier que la chaine saisie comporte au moins "nbMinimumDeChiffres" chiffres :
  nbChiffresTrouves = 0;
  masqueChiffres = "0123456789"
  for(i=0; i<str.length; i++) {
    
	lettre = str.substring(i,i+1);  
    if  (masqueChiffres.indexOf(lettre) != -1)
		nbChiffresTrouves += 1;
  } //end for

  if (nbChiffresTrouves < nbMinimumDeChiffres) {
      alert('Le numéro de téléphone doit comporter au moins ' + nbMinimumDeChiffres + ' chiffres.');
      return false;
  } //end if
  
  if (nbChiffresTrouves > nbMaximumDeChiffres) {
      alert('Le numéro de téléphone doit comporter au plus ' + nbMaximumDeChiffres + ' chiffres.');
      return false;
  } //end if
  
  
  return true;
}




//************************************************************************
// vérifie que l'email saisi par l'utilisateur est correct syntaxiquement
//************************************************************************
function emailCheck (emailStr)
{
	
    if ((trim(emailStr)==""))
    {
      return true
    }


	
    var emailPat=/^(.+)@(.+)$/
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    var validChars="\[^\\s" + specialChars + "\]"
    var quotedUser="(\"[^\"]*\")"
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    var atom=validChars + '+'
    var word="(" + atom + "|" + quotedUser + ")"


    //FLE 20/09/2001 : Possibilité d'avoir un nom finissant par un "." :
    //var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    var userPat=new RegExp("^" + word + "(\\." + "(" + word + ")*" + ")*$")

    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
    var matchArray=trim(emailStr).match(emailPat)

    if (matchArray==null) {
    	alert("Votre adresse email est incorrect (ex: MonAdress@LeDomaine.fr )")
    	return false;
    }
    var user=matchArray[1]
    var domain=matchArray[2]


	
    if (user.match(userPat)==null) {
        // user is not valid
        alert("Votre Nom est incorrect")
        return false
    }

    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null) {
    	  for (var i=1;i<=4;i++) {
    	    if (IPArray[i]>255) {
    	        alert("Votre adresse IP est incorrect")
    		return false
    	    }
        }
        return true
    }

    var domainArray=domain.match(domainPat)
    if (domainArray==null) {
    	alert("Votre nom de domaine est incorrect")
        return false
    }

    var atomPat=new RegExp(atom,"g")
    var domArr=domain.match(atomPat)
    var len=domArr.length

    if (domArr[domArr.length-1].length<2 ||
        domArr[domArr.length-1].length>3) {
       alert("L'adresse doit se terminer par un nom de domaine en trois lettres, ou un pays ")
       return false
    }

    if (len<2) {
       var errStr="Votre nom de domaine est incorrect"
       alert(errStr)
       return false
    }

  return true;
}
	
	


function GetRegionFromCP(codepostal) {

		//Récupérer le département à partir du Code Postal :
		var Dpt = codepostal.substring(0, 2);

		
		//Récupérer la Région à partir du Département :
		var Region = "" 
		//ain
		switch(Dpt ) {
			case '01' :
				Region = "ain"
				break; 
		// une ligne qui commence avec deux slashs c'est un commentaire donc ci-dessous pour info nom de la région  
		// aines : ci-dessous on liste les départements de la région
			case '02' : 
		// Region : on récupère les deux premiers chiffres du code postal pour déterminer la région puis on nomme la région
		// la region determine la page appelée exemple aquitaine appele "aquitaine.html" ATTENTION aux extensions htm HTM html HTML et à la casse 
				Region = "aine"
				break; 
		//Faire de même pour chaque région
		//allier
			case '03':
				Region = "allier"	
				break;
		//alpes_haute_provence
			case '04':
				Region = "alpes_hautes_provence"	
				break;
		//hautes_alpes
			case '05':
				Region = "hautes_alpes"	
				break;
		//alpes_maritimes
			case '06':
				Region = "alpes_maritimes2"
				break;
				
		//ardeche
			case '07':
				Region = "ardeche"	
				break;
		//ardennes
			case '08':
				Region = "ardennes"	
				break;
		//ariege
			case '09':
				Region = "ariege"	
				break;
		//aube
			case '10':
				Region = "aube"	
				break;
		//aude
			case '11':
				Region = "aude"	
				break;
		//aveyron
			case '12':
				Region = "aveyron"	
				break;
		//bouches_rhone
			case '13':
				Region = "bouches_rhone2"
				break;

                //calvados
			case '14':
				Region = "calvados"	
				break;

                //cantal
			case '15':
				Region = "cantal"	
				break;

                //charentes
			case '16':
				Region = "charentes"	
				break;
                //charentes_maritime
			case '17':
				Region = "charentes_maritime"	
				break;
                //cher
			case '18':
				Region = "cher"	
				break;
                //correze
			case '19':
				Region = "correze"	
				break;
                //corse
			case '20':
				Region = "corse"	
				break;
                //cote_or
			case '21':
				Region = "cote_or"	
				break;
                //cote_armor
			case '22':
				Region = "cote_armor"	
				break;
                //creuse
			case '23':
				Region = "creuse"	
				break;
                //dordogne
			case '24':
				Region = "dordogne"	
				break;
                //doubs
			case '25':
				Region = "doubs"	
				break;
                //drome
			case '26':
				Region = "drome"	
				break;
                //eure
			case '27':
				Region = "eure"	
				break; 

                //eure_loire
			case '28':
				Region = "eure_loire"	
				break;
                //finistere
			case '29':
				Region = "finistere"	
				break;

                //gard
			case '30':
				Region = "gard"	
				break;
                //haute_garonne
			case '31':
				Region = "haute_garonne"	
				break;
                //gers
			case '32':
				Region = "gers"	
				break;
                //gironde
			case '33':
				Region = "gironde"	
				break;
                //herault
			case '34':
				Region = "herault"	
				break;
                //ile_vilaine
			case '35':
				Region = "ille_vilaine"	
				break;
                //indre
			case '36':
				Region = "indre"	
				break;
                //indre_loire
			case '37':
				Region = "indre_loire"	
				break;
               //isere
			case '38':
				Region = "isere"	
				break;
               //juras
			case '39':
				Region = "juras"	
				break;
               //landes
			case '40':
				Region = "landes"	
				break;
               //loire_cher
			case '41':
				Region = "loire_cher"	
				break;
               //loire
			case '42':
				Region = "loire"	
				break;
               //haute_loire
			case '43':
				Region = "haute_loire"	
				break;
               //loire_atlantique
			case '44':
				Region = "loire_atlantique"	
				break;
               //loiret
			case '45':
				Region = "loiret"	
				break;
              //lot
			case '46':
				Region = "lot"	
				break;

              //lot_garonne
			case '47':
				Region = "lot_garonne"	
				break;
              //loreze
			case '48':
				Region = "loreze"	
				break;

              //maine_loire
			case '49':
				Region = "maine_loire"	
				break;
              //manche
			case '50':
				Region = "manche"	
				break;
              //marne
			case '51':
				Region = "marne"	
				break;
              //haute_marne
			case '52':
				Region = "haute_marne"	
				break;
              //mayenne
			case '53':
				Region = "mayenne"	
				break;
              //meurthe_moselle
			case '54':
				Region = "meurthe_moselle"	
				break;
              //meuse
			case '55':
				Region = "meuse"	
				break;
              //morbihan
			case '56':
				Region = "morbihan"	
				break;
              //moselle
			case '57':
				Region = "moselle"	
				break;
              //nievre
			case '58':
				Region = "nievre"	
				break;
              //nord
			case '59':
				Region = "nord"	
				break;
              //oise
			case '60':
				Region = "oise"	
				break;
              //orne
			case '61':
				Region = "orne"	
				break;
              //pas_calais
			case '62':
				Region = "pas_calais"	
				break;
              //puy_dome
			case '63':
				Region = "puy_dome"	
				break;
              //pyrenees_atlantiques
			case '64':
				Region = "pyrenees_atlantiques"	
				break;
              //hautes_pyrenees
			case '65':
				Region = "hautes_pyrenees"	
				break;
              //pyrenees_orientales
			case '66':
				Region = "pyrenees_orientales"	
				break;
              //bas_rhin
			case '67':
				Region = "bas_rhin"	
				break;
              //haut_rhin
			case '68':
				Region = "haut_rhin"	
				break;
              //rhone
			case '69':
				Region = "rhone2"
				break;


              //haute_saone
			case '70':
				Region = "haute_saone"	
				break;
              //saone_loire
			case '71':
				Region = "saone_loire"	
				break;
              //sarthe
			case '72':
				Region = "sarthe"	
				break;
              //savoie
			case '73':
				Region = "savoie"	
				break;
              //haute_savoie
			case '74':
				Region = "haute_savoie"	
				break;
              //paris
			case '75':
				Region = "paris"	
				break;
              //seine_maritime
			case '76':
				Region = "seine_maritime"	
				break;
              //seine_marne
			case '77':
				Region = "seine_marne"	
				break;
              //yvelines
			case '78':
				Region = "yvelines"	
				break;
              //deux_sevres
			case '79':
				Region = "deux_sevres"	
				break;
              //somme
			case '80':
				Region = "somme"	
				break;
              //tarn
			case '81':
				Region = "tarn"	
				break;
              //tarn_garonne
			case '82':
				Region = "tarn_garonne"	
				break;
              //var
			case '83':
				Region = "var"	
				break;
              //vaucluse
			case '84':
				Region = "vaucluse"	
				break;
              //vendee
			case '85':
				Region = "vendee"	
				break;
              //vienne
			case '86':
				Region = "vienne"	
				break;
              //haute_vienne
			case '87':
				Region = "haute_vienne"	
				break;
              //vosges
			case '88':
				Region = "vosges"	
				break;
              //yonne
			case '89':
				Region = "yonne"	
				break;
              //belfort
			case '90':
				Region = "belfort"	
				break;
              //essonne
			case '91':
				Region = "essonne"	
				break;
              //haute_seine
			case '92':
				Region = "hauts_de_seine"
				break;
              //saint_denis
			case '93':
				Region = "saint_denis"	
				break;
              //val_marne
			case '94':
				Region = "val_marne"	
				break;
              //val_oise
			case '95':
				Region = "val_oise"	
				break;
		
		} //end switch
		
		//Renvoyer la Région trouvée :
		return Region
	}

	
	
	
	
//************************************************************************
// retourne vrai si la chaine :
//   - Comporte 5 chiffres
//   - Et que le :    01000 <=   valeur  <=   95999 
//************************************************************************
function isCodePostal(str)
{
  var lettre;
  var masque = "0123456789";
  var nbMinimumDeChiffres = 5
  var nbMaximumDeChiffres = 5

  var i;

  //Etape 1 : Vérifier si la chaine saisie ne comporte pas de caractères illégaux :
  for(i=0; i<str.length; i++)
  {
    lettre = str.substring(i,i+1);
    if  (masque.indexOf(lettre)==-1)
    {
      alert('Le code postal saisi est incorrect.');
      return false;
    }
  }
  
  //Etape 2 : Vérifier que la chaine saisie comporte au moins "nbMinimumDeChiffres" chiffres :
  nbChiffresTrouves = 0;
  masqueChiffres = "0123456789"
  for(i=0; i<str.length; i++) {
    
	lettre = str.substring(i,i+1);  
    if  (masqueChiffres.indexOf(lettre) != -1)
		nbChiffresTrouves += 1;
  } //end for


  if (nbChiffresTrouves < nbMinimumDeChiffres) {
      alert('Le code postal doit comporter ' + nbMinimumDeChiffres + ' chiffres.');
      return false;
  } //end if

  if (nbChiffresTrouves > nbMaximumDeChiffres) {
      alert('Le code postal doit comporter ' + nbMaximumDeChiffres + ' chiffres.');
      return false;
  } //end if
  
                      
  //Etape 3 : Les valeurs mini et max
  if (("01000" > str)  || ("95999" < str)) {
      alert('Le code postal est incorrect, merci de bien vouloir le ressaisir.');
      return false;
  } //end if
  
  
  return true;
}

	

	
	
	
