
var IE = (document.all) ? 1 : 0;
var DOM = 0; 
if (parseInt(navigator.appVersion) >=5) {DOM=1};

        function txtShow( cId, txt2show ) {
            
            // Detect Browser

            if (DOM) {
		var viewer = document.getElementById(cId);
                viewer.innerHTML=txt2show;
            }
            else if(IE) {
                document.all[cId].innerHTML=txt2show;
            }
        }//txtshow
        
        function getTxt( cId ) {
            var output = "";
            // Detect Browser
            if (DOM) {
		var viewer = document.getElementById(cId);
		output = viewer.value;
            }
            else if(IE) {
                output = document.all[cId].value;
            }
            return output;
        }//getTxt

function countChars(cBoxName, cTxtName, maxKeys) 
{
  var str = new String(getTxt(cBoxName));
  var len = str.length;
  var showstr = len + " caractéres  sur " + maxKeys + " de saisis";
  if (len > maxKeys) showstr += '<br>Des informations peuvent être perdues.';
  txtShow( cTxtName, showstr );
}

/*     Fonctions de contrôle de champs de formulaires coté client   */

//Diverses expressions régulières utiles

// Expressions régulières de test de longueur
var regExpEmpty=/^$/g;					// Accepte une chaine vide
var regExp8Chars=/^[0-9a-zA-Z]{8,}$/g;			// Accepte une chaine d'au moins 8 carctères alphanumeriques (pour un mot de passe par exemple).

// Expressions régulières de test de type de caractère
var regExpAlphanumeric=/[0-9a-zA-Z]+/g;			// Accepte une chaine alphanumérique
var regExpAlphanumericWithWhitespace=/[0-9a-zA-Z ]+/g;	// Accepte une chaine alphanumérique + ' '
var regExpAlphabetic=/[a-zA-Z]+/g;			// Accepte une chaine alphabétique
var regExpNumeric=/[0-9]+/g;				// Accepte une chaine numérique

// Expressions régulières de test de type
var regExpInt=/^[0-9]+$/g;				// Accepte une chaine de type 'int'
var regExpDouble=/^[-+]?[0-9]+(\.[0-9]+)?$/g;		// Accepte une chaine de type 'double'
var regExpFloat=/^[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/g;	// Accepte une chaine de type 'float'
var regExpTime=/^([01][0-9]|2[0123])\:([012345][0-9])(\:([012345][0-9])(.([0-9]{3})+)?)?$/g;		 // Accepte une chaine de type 'time'. Ex : 12:51 ou 21:45:35.654
var regExpFrenchDate=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  // date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099.
var regExpEnglishDate=/^(19|20)\d\d[\- \/\.](0[1-9]|1[012])[\- \/\.](0[1-9]|[12][0-9]|3[01])$/g; // idem ci-dessus mais format anglais (Ex : aaaa/mm/jj)
var regExpBoolean=/^true|false$/g;			// Accepte une chaine de type 'boolean'

// Expressions régulières de test de types administratifs français
var regExpCodePostal=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/g;							// Accepte une chaine de type 'code postal'. Ex : F-33370 ou 33 370 ou 33370 ou F-1 370
var regExpTelephoneFixe=/^(01|02|03|04|05|08)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230
var regExpTelephonePortable=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;			// Accepte un numero de téléphone de type 'portable'.
var regExpTelephoneNational=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.
var regExpTelephoneInternational=/^(\(\+[0-9]{2}\))[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g; 	// Accepte un numero de téléphone de type 'international'. Ex : (+33) 1 34 12 52 30

var regExpNumeroSecuriteSociale=/^[12][ \.\-]?[0-9]{2}[ \.\-]?(0[1-9]|[1][0-2])[ \.\-]?([0-9]{2}|2A|2B)[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{2}$/g; // Accepte un numero de sécurité sociale français. Ex : 1 85 34 33 354 450 45

var regExpTVAIntracommunautaire=/^[A-Z]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;		// Accepte un numero de TVA Intra-communautaire. Ex : FR 02 254 254 254
var regExpNumeroSiren=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;							// Accepte un numero SIREN. Ex : 254 254 254
var regExpNumeroSiret=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{5}$/g;					// Accepte un numero SIRET. Ex : 254 254 254 12345
var regExpCodeApe=/^[0-9]{2}[ \.\-]?[0-9]{1} ?[a-zA-Z]$/g;								// Accepte un code APE. Ex : 25.4Z

// Expressions régulières de test de types liés à internet

var regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;										// Accepte une adresse email. Ex : toto@toto.com
var regExpIpAdress=/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g;	// Accepte une adresse ip. Ex : 192.168.0.1
var regExpDomainName=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/g;													// Accepte un nom de domaine. Ex : toto.com
var regExpUrl=/^(((ht|f)tp(s?))\:\/\/)?(([a-zA-Z0-9]+([@\-\.]?[a-zA-Z0-9]+)*)(\:[a-zA-Z0-9\-\.]+)?@)?(www.|ftp.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})(\:[0-9]+)?\/?/g;			// Accepte une url ftp, http ou https, avec ou sans login/mot de passe, avec ou sans numero de port. Ex : http://www.toto.com, ftp://toto:toto@ftp.toto.com:21/

var regExpHexColor=/^#[0-9A-Fa-f]{6}$/g; // Accepte une couleur hexadécimale

//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
function matchRegularExpression(valeur, regularExpression)
{
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}

function doesntMatchRegularExpression(valeur, regularExpression)
{
	if(matchRegularExpression(valeur, regularExpression)) return false;
	else return true;
}

/*
les fonctions de contrôle suivantes prennent toutes comme argument la valeur de l'attribut "value" d'un champ de formulaire de type "text" ou "password"
*/
function isEmpty(valeur)
{ 
	return matchRegularExpression(valeur, regExpEmpty);
}

function isNotEmpty(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmpty);
}

function isNot8CharsLength(valeur)
{
	return doesntMatchRegularExpression(valeur, regExp8Chars);
}

function isNotAlphanumeric(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphanumeric);
}

function isNotAlphanumericWithWhitespace(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphanumericWithWhitespace);
}

function isNotAlphabetic(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphabetic);
}

function isNotNumeric(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeric);
}

function isNotInt(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpInt);
}

function isNotDouble(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpDouble);
}

function isNotFloat(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpInt);
}

function isNotBoolean(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpBoolean);
}

function isNotTime(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpTime);
}

function isNotDate(valeur, mode)
{
	switch (mode)
	{
		case "fr" : 
			return doesntMatchRegularExpression(valeur, regExpFrenchDate);
			break;
		case "en" :
			return doesntMatchRegularExpression(valeur, regExpEnglishDate);
			break;
		default : 
			return doesntMatchRegularExpression(valeur, regExpFrenchDate);
			break;
	}
}

function isNotCodePostal(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpCodePostal);
}

function isNotTelephone(valeur, mode)
{
	switch (mode)
	{
		case "fixe" : 
			return doesntMatchRegularExpression(valeur, regExpTelephoneFixe);
			break;
		case "port" :
			return doesntMatchRegularExpression(valeur, regExpTelephonePortable);
			break;
		case "nati" :
			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);
			break;
		case "inte" :
			return doesntMatchRegularExpression(valeur, regExpTelephoneInternational);
			break;
		default : 
			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);
			break;
	}
}

function isNotNumeroSecuriteSociale(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSecuriteSociale);
}

function isNotTVAIntracommunautaire(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpTVAIntracommunautaire);
}

function isNotNumeroSiren(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSiren);
}

function isNotNumeroSiret(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSiret);
}

function isNotCodeApe(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpCodeApe);
}

function isNotEmailAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmailAdress);
}

function isNotIpAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpIpAdress);
}

function isNotDomainName(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpDomainName);
}

function isNotUrl(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpUrl);
}

function isNotHexColor(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpHexColor);
}

function isNotHexspecifique(valeur, regspecifique)
{
	return doesntMatchRegularExpression(valeur, regspecifique);
}

function valide_cbx(champ){
var x;
var nbre=0;
for (x=0;x< champ.length;x++){
 
   if((champ[x].checked)==true){
        nbre++;		 
    } 
	
}

return nbre;
}

function valide_cbx_un(champ){
var x;
var nbre=0;
if (champ.checked==true){
        nbre++;		 
    } 	
return nbre;
}

function valeur_cbx(champ){
var x;
var str='';
for (x=0;x< champ.length;x++){
 
   if((champ[x].checked)==true){
        str = str +  champ[x].value+',';  	 
    } 
	
}

return str;
}

function getCheckedValue(radioObj,nb) {
coche=false;	

for(var i = 0; i < nb; i++) {
  if(radioObj[i].checked) {
			return true;
		}
}

	return coche;
}

function majNiveau(formu, champs, selectName, divName)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById(divName).innerHTML = rep;
              } 
         }
    }; 
   
   var discipline = eval("document." + formu + "." + champs + ".value");

   xhr2.open("GET", "majNiveau.php?discipline="+discipline+"&selectName="+selectName,true);
   xhr2.send(null);
}

function majActivite(formu, champs, selectName, divName)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById(divName).innerHTML = rep;
              } 
         }
    }; 
   
   var baby_club = eval("document." + formu + "." + champs + ".value");

   xhr2.open("GET", "majActivite.php?baby_club="+baby_club+"&selectName="+selectName,true);
   xhr2.send(null);
}

function majGamme(formu, numero)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById("gammeSelect"+numero).innerHTML = rep;

				  gestPanier("", "", "", "", "");
              } 
         }
    }; 
   
   var nom = eval("document." + formu + ".nom" + numero + ".value");
   var prenom = eval("document." + formu + ".prenom" + numero + ".value");
   var age = eval("document." + formu + ".age" + numero + ".value");

   xhr2.open("GET", "majGamme.php?age="+age+"&nom="+nom+"&prenom="+prenom+"&numero="+numero,true);
   xhr2.send(null);
}

function majJourSecurityClub(formu, numero)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  gestPanier("", "", "", "", "");
              } 
         }
    }; 
   
   var jour = eval("document." + formu + ".cours_priv_club_security" + numero + ".value");

   xhr2.open("GET", "majJourSecurityClub.php?jour="+jour+"&numero="+numero,true);
   xhr2.send(null);
}

function majCoordonnee(formu, numero)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  gestPanier("", "", "", "", "");
              } 
         }
    }; 

   var nom = eval("document." + formu + ".nom" + numero + ".value");
   var prenom = eval("document." + formu + ".prenom" + numero + ".value");
   var age = eval("document." + formu + ".age" + numero + ".value");

   xhr2.open("GET", "majCoordonnee.php?numero="+numero+"&age="+age+"&nom="+nom+"&prenom="+prenom,true);
   xhr2.send(null);
}

function majChaussure(formu, numero)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById("chaussureSelect" + numero).innerHTML = rep;
              } 
         }
    }; 
   
   var gamme = eval("document." + formu + ".gamme" + numero + ".value");

   xhr2.open("GET", "majChaussure.php?gamme="+gamme+"&numero="+numero,true);
   xhr2.send(null);
}

function majCoursPrives(formu, champs, selectName, divName, numeroPers)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById(divName).innerHTML = rep;

				   gestPanier("", "", "", "", "");
              } 
         }
    }; 

   var nbPers = eval("document." + formu + "." + champs + ".value");
	
   xhr2.open("GET", "majCoursPrives.php?nbPers="+nbPers+"&selectName="+selectName+"&nomDuFormulaire="+formu+"&numeroPers="+numeroPers,true);
   xhr2.send(null);
}


function gestPanier(formName, champsName, typeInput, table, personne)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById("divpanier").innerHTML = rep;
              } 
         }
    }; 
   
   if(champsName != "")
   {
	   var id = eval("document." + formName + "." + champsName + ".value");
	   var complement = "?act=gestPanier&id="+id+"&input="+champsName+"&table="+table+"&personne="+personne;
   }
   else
	   var complement = "?id="+id+"&table="+table+"&personne="+personne;

   xhr2.open("GET", "gestPanier.php"+complement,true);
   xhr2.send(null);
}

function addQtePanier(formName, champsName, champsCur, table, personne, champsAssocie)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  document.getElementById("divpanier").innerHTML = rep;

				   gestPanier("", "", "", "", "");
              } 
         }
    }; 
   
    var tabCheck = "";
	var liste = document.getElementsByTagName("input");
	var nbJour = 0;

	for(var i = 0 ; i < liste.length ; i++)
	{
		if(liste[i].getAttribute("type") == "checkbox" && liste[i].getAttribute("name") == champsName)
		{
			if(liste[i].checked)
			{
				nbJour++;
				if(tabCheck != "") tabCheck += ",";
				tabCheck += liste[i].value;
			}
		}
	}

   var complement = "?act=addQte&nbJour="+nbJour+"&input="+champsName+"&table="+table+"&personne="+personne+"&champsAssocie="+champsAssocie+"&champsCur="+champsCur+"&tabCheck="+tabCheck;

   xhr2.open("GET", "gestPanier.php"+complement,true);
   xhr2.send(null);
}

function delPersonne(formName, numeroPers)
{
	//recuperation des info du produit pour le mois donnée en AJAX
	var xhr2 = null;
	 if (window.XMLHttpRequest) // Firefox et autres
	 {
	  xhr2 = new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) // Internet Explorer
	 {
	  try
	  {
	   xhr2 = new ActiveXObject("Microsoft.XMLHTTP" );
	  }
	  catch (e)
	  {
	   try
	   {
	    xhr2 = new ActiveXObject("Msxml2.XMLHTTP" );
	   }
	   catch (e1)
	   {
	    xhr2 = null;
	   }
	     }
	}

    xhr2.onreadystatechange  = function()
    { 
         if(xhr2.readyState  == 4)
         {    
              if(xhr2.status  == 200) 
              {
				  rep = xhr2.responseText;
				  
				  document.familleCours.elements["nom_" + numeroPers].value = "";
				  document.familleCours.elements["prenom_" + numeroPers].value = "";
				  document.familleCours.elements["age_" + numeroPers].value = "";
				  document.familleCours.elements["cours_coll_" + numeroPers][1].checked = true;
				  document.familleCours.elements["cours_priv_" + numeroPers][1].checked = true;
				  document.familleCours.elements["option_" + numeroPers][1].checked = true;
              } 
         }
    }; 

	nbPers = eval("document." + formName + ".nbPersCours.value");
	nbPersTmp = parseInt(nbPers) - 1;
	document.familleCours.nbPersCours.value = nbPersTmp;

	document.getElementById("personne_" + numeroPers).style.display = 'none';

   xhr2.open("GET", "majPersonne.php?numero=" + numeroPers + "&nbPers=" + nbPersTmp,true);
   xhr2.send(null);
}

function changePersonne(form, redirForm)
{
	form.elements[redirForm].value = 'changePersonne'; 
	form.submit();
}

function afficheNbPersCours(form, nbMaxPers)
{
	var nbPers = form.nbPersCours.value;
	
	nbPersTest = parseInt(nbPers);

	if(nbMaxPers > nbPersTest)
	{
		nbPers = parseInt(nbPers) + 1;

		form.nbPersCours.value = nbPers;

		/*for(i = 1 ; i <= nbMaxPers ; i++)
		{
			document.getElementById("personne_"+i).style.display = "none";
		}

		for(i = 1 ; i <= nbPers ; i++)
		{
			document.getElementById("personne_"+i).style.display = "block";
		}*/

		for(i = 1 ; i <= nbMaxPers ; i++)
		{
			if(document.getElementById("personne_"+i).style.display == "none")
			{
				document.getElementById("personne_"+i).style.display = "block";
				break;
			}
		}
	}
}

function afficheNbPersPrives(form, nbMaxPers, numeroPers)
{
	var nbPers = eval("document." + form + ".cours_priv_nb_pers" + numeroPers + ".value");

	nbPers = parseInt(nbPers);

	if(nbPers > 0)
		document.getElementById("ligne_prenom").style.display = "block";
	else 
		document.getElementById("ligne_prenom").style.display = "none";

	if(nbMaxPers >= nbPers)
	{
		for(i = 1 ; i <= nbPers ; i++)
		{
			document.getElementById("cours_priv_prenom"+i+numeroPers).style.display = "block";
		}

		for(i = (nbPers+1) ; i <= nbMaxPers ; i++)
		{
			document.getElementById("cours_priv_prenom"+i+numeroPers).value = "";
			document.getElementById("cours_priv_prenom"+i+numeroPers).style.display = "none";
		}
	}
}

function verifInfos(form)
{
	if(!form.renseignement_nom.value)
	{
		alert("Veuillez saisir votre nom\nPlease fill in your name");
		form.renseignement_nom.focus();
		return false;
	}
	if(!form.renseignement_adresse.value)
	{
		alert("Veuillez saisir votre adresse\nPlease fill in your address");
		form.renseignement_adresse.focus();
		return false;
	}
	if(!form.renseignement_cp.value)
	{
		alert("Veuillez saisir votre code postal\nPlease fill in your zip code");
		form.renseignement_cp.focus();
		return false;
	}
	if(!form.renseignement_ville.value)
	{
		alert("Veuillez saisir votre ville\nPlease fill in your city");
		form.renseignement_ville.focus();
		return false;
	}
	if(!form.renseignement_pays.value)
	{
		alert("Veuillez sélectionner votre pays\nPlease fill in your country");
		form.renseignement_pays.focus();
		return false;
	}
	if(!form.renseignement_email.value)
	{
		alert("Veuillez saisir votre email\nPlease fill in your e-mail");
		form.renseignement_email.focus();
		return false;
	}
	if(form.renseignement_email.value && !verifMail(form.renseignement_email.value))
	{
	   alert("L'e-mail saisi n'est pas valide\nthis e-mail is not a valid e-mail");
	   form.renseignement_email.focus();
	   return false;
	}
	if(!form.renseignement_tel.value)
	{
		alert("Veuillez saisir votre téléphone\nPlease fill in your phone number");
		form.renseignement_tel.focus();
		return false;
	}
	if(!form.OUTWARD_DATE.value)
	{
		alert("Veuillez saisir votre date de début de séjour\nPlease fill in your stay start date");
		form.OUTWARD_DATE.focus();
		return false;
	}
	if(!form.INWARD_DATE.value)
	{
		alert("Veuillez saisir votre date de fin de séjour\nPlease fill in your stay end date");
		form.INWARD_DATE.focus();
		return false;
	}
	if(!form.cgl.checked)
	{
		alert("Veuillez cocher les conditions générales de réservation\nPlease confirm that you have red the general booking terms");
		return false;
	}

	return true;
}

function verifFamille(form)
{
	var nbPers = form.nbPersCours.value;

	for(i = 1 ; i <= 6 ; i++)
	{
		if(document.getElementById("personne_"+i).style.display == "block")
		{
			var nom = eval("form.nom_" + i);
			var prenom = eval("form.prenom_" + i);
			var age = eval("form.age_" + i);
			var coll = eval("form.elements['cours_coll_" + i + "'][0]");
			var priv = eval("form.elements['cours_priv_" + i + "'][0]");
			var option = eval("form.elements['option_" + i + "'][0]");

			if(!nom.value)
			{	
				alert("Veuillez saisir le nom de la personne " + i + "\nPlease fill in  the " + i + " person last name");
				nom.focus();
				return false;
			}
			if(!prenom.value)
			{	
				alert("Veuillez saisir le prénom de la personne " + i + "\nPlease fill in the " + i + " person first name");
				prenom.focus();
				return false;
			}
			if(!age.value)
			{	
				alert("Veuillez séléctionner l'age de la personne " + i + "\nPlease fill in the " + i + " person age");
				age.focus();
				return false;
			}
			if(coll.checked == false && priv.checked == false && option.checked == false)
			{	
				alert("Veuillez cocher au moins un choix pour la personne " + i + "\nPlease select one option minimum for the the " + i + " person");
				return false;
			}
		}
	}
	
	return true;
}

function verifRadio(form, numPers)
{
	if(document.getElementById("personne_"+numPers).style.display == "block")
	{
		var collOui = eval("form.elements['cours_coll_" + numPers + "'][0]");
		var privOui = eval("form.elements['cours_priv_" + numPers + "'][0]");
		var optionOui = eval("form.elements['option_" + numPers + "'][0]");

		var collNon = eval("form.elements['cours_coll_" + numPers + "'][1]");
		var privNon = eval("form.elements['cours_priv_" + numPers + "'][1]");
		var optionNon = eval("form.elements['option_" + numPers + "'][1]");

		if(collOui.checked == true || privOui.checked == true)
		{			
			optionOui.checked = false;
			optionNon.checked = true;

			optionOui.disabled = true;
			optionNon.disabled = true;
		}

		if(collNon.checked == true && privNon.checked == true)
		{			
			optionOui.disabled = false;
			optionNon.disabled = false;
		}
	}
}

/*function matSansCours()
{
	if(document.formFam.mat_sans_cours.value == "2")
	{
		window.location.href = "famille_avec_cours.php";
	}
}*/

function verifMateriel(form)
{
	if(form.mat_sans_cours.value == "1")
	{
		var nbTour = 0;
		for(i = 1 ; i <= 4 ; i++)
		{
			var nom = eval("form.nom" + i);
			var prenom = eval("form.prenom" + i);
			var age = eval("form.age" + i);
			var niveau = eval("form.niveau" + i);
			var pointure = eval("form.pointure" + i);
			var taille = eval("form.taille" + i);
			var gamme = eval("form.gamme" + i);
			var casque = eval("form.casque" + i);
			
			if(nom.value || prenom.value || age.value || niveau.value || pointure.value || taille.value || (gamme && gamme.value != "0") || casque.value != "0")
			{	
				if(!nom.value)
				{
					alert("Veuillez saisir le nom de la personne " + i + "\nPlease fill in  the " + i + " person last name");
					nom.focus();
					return false;
				}
				if(!prenom.value)
				{
					alert("Veuillez saisir le prénom de la personne " + i + "\nPlease fill in the " + i + " person first name");
					prenom.focus();
					return false;
				}
				if(!age.value)
				{
					alert("Veuillez saisir l'age de la personne " + i + "\nPlease fill in the " + i + " person age");
					age.focus();
					return false;
				}
				if(!niveau.value)
				{
					alert("Veuillez saisir le niveau de la personne " + i + "\nPlease fill in the " + i + " person level");
					niveau.focus();
					return false;
				}
				if(!pointure.value)
				{
					alert("Veuillez saisir la pointure de la personne " + i + "\nPlease fill in the " + i + " person shoe size");
					pointure.focus();
					return false;
				}
				if(!taille.value)
				{
					alert("Veuillez saisir la taille de la personne " + i + "\nPlease fill in the " + i + " person body size");
					taille.focus();
					return false;
				}
				if(gamme.value == "0")
				{
					alert("Veuillez selectionner la gamme de matériel pour la personne " + i + "\nPlease select an equipment range for the " + i + " person");
					return false;
				}
				/*if(casque.value == "0")
				{
					alert("Veuillez selectionner la gamme de matériel et le casque pour la personne " + i + "\nPlease select an equipment range and the helmet for the " + i + " person");
					return false;
				}*/
				nbTour = nbTour + 1;
			}
		}

		if(nbTour == 0) 
		{
			alert("Veuillez saisir au moins une personne\nPlease fill in at least one person");
			return false;
		}
	}
	else
	{
		for(i = 1 ; i <= 4 ; i++)
		{
			var nom = eval("form.nom" + i);
			var prenom = eval("form.prenom" + i);
			var age = eval("form.age" + i);
			var niveau = eval("form.niveau" + i);
			var pointure = eval("form.pointure" + i);
			var taille = eval("form.taille" + i);
			var gamme = eval("form.gamme" + i);
			var casque = eval("form.casque" + i);
			
			nom.value = "";
			prenom.value = "";
			age.value = "";
			niveau.value = "";
			pointure.value = "";
			taille.value = "";
			if(gamme) gamme.value = "0";
			if(casque) casque.value = "0";
		}
	}
	
	return true;
}

function verifPersCours(form, num)
{

	/* collectives */
		var disciplineColl = eval("form.cours_coll_discipline_" + num);
		if(form.elements['cours_coll_niveau_an_passe_' + num]) 
		{
			var anPasseOuiColl = eval("form.elements['cours_coll_niveau_an_passe_" + num + "'][0]");
			var anPasseNonColl = eval("form.elements['cours_coll_niveau_an_passe_" + num + "'][1]");
		}

		var sinonQuandColl = eval("form.cours_coll_sinon_quand_" + num);

		if(disciplineColl && !disciplineColl.value)
		{
			alert("Veuillez sélectionner la discipline pour les cours collectifs\nPlease fill in the group lesson activity");
			disciplineColl.focus();
			return false;
		}

		if(anPasseOuiColl && anPasseNonColl && anPasseOuiColl.checked == false && anPasseNonColl.checked == false)
		{
			alert("Veuillez cocher si le niveau a été obtenu l'an passé ou non\nPlease confirm if you achieved this level last year or not");
			return false;
		}

		if(anPasseNonColl && anPasseNonColl.checked == true && !sinonQuandColl.value)
		{
			alert("Veuillez saisir le champs informations du niveau\rPlease fill in the level informations field");
			sinonQuandColl.focus();
			return false;
		}
		
		var babyClub = eval("form.cours_coll_baby_club_" + num);
		var freeRide = eval("form.cours_coll_free_ride_" + num);
		var classique = eval("form.cours_coll_classique_" + num);

		if(babyClub && babyClub.value == "0" && freeRide && freeRide.value == "0" && classique && classique.value == "0")
		{
			alert("Veuillez selectionner au moins un cours collectifs\nPlease fill in at least one group lesson activity");
			return false;				
		}
		
	/* privés */
	
		var disciplinePriv = eval("form.cours_priv_discipline_" + num);
		if(form.elements['cours_priv_niveau_an_passe_' + num]) 
		{
			var anPasseOuiPriv = eval("form.elements['cours_priv_niveau_an_passe_" + num + "'][0]");
			var anPasseNonPriv = eval("form.elements['cours_priv_niveau_an_passe_" + num + "'][1]");
		}

		var sinonQuandPriv = eval("form.cours_priv_sinon_quand_" + num);

		if(disciplinePriv && !disciplinePriv.value)
		{
			alert("Veuillez sélectionner la discipline pour les cours privés\nPlease fill in the private lesson");
			disciplinePriv.focus();
			return false;
		}

		if(anPasseOuiPriv && anPasseNonPriv && anPasseOuiPriv.checked == false && anPasseNonPriv.checked == false)
		{
			alert("Veuillez cocher si votre niveau a été obtenu l'an passé ou non\nPlease confirm if you achieved this level last year or not");
			return false;
		}

		if(anPasseNonPriv && anPasseNonPriv.checked == true && !sinonQuandPriv.value)
		{
			alert("Veuillez saisir le champ information du niveau\nPlease fill in the level informations field.");
			sinonQuandPriv.focus();
			return false;
		}


		var nbCoursPriv = eval("form.cours_priv_nb_pers_" + num);
		var security = eval("form.cours_priv_club_secu_" + num);
		var evasion = eval("form.cours_priv_club_evasion_" + num);

		if(nbCoursPriv && nbCoursPriv.value == "0" && security && security.value == "0" && evasion && evasion.value == "0")
		{
			alert("Veuillez selectionner au moins un cours privés\nPlease fill in at least one private lesson option");
			return false;				
		}

		if(nbCoursPriv && nbCoursPriv.value != "0")
		{
			var heureDebut = eval("form.cours_priv_heure_debut_" + num);
			if(heureDebut.value == "")
			{
				alert("Veuillez sélectionner une heure de début.");
				heureDebut.focus();
				return false;
			}

			for(var y = 1 ; y <= nbCoursPriv.value ; y++)
			{
				var personne = eval("form.cours_priv_prenom" + y + "_" + num);
				if(!personne.value)
				{
					alert("Veuillez saisir le prénom de la personne " + y + "\nPlease fill in the " + y + " person first name");
					personne.focus();
					return false;
				}
			}
			
			var persTarif = eval("form.cours_priv_nb_pers_tarif_" + num);
			if(persTarif.value == "0")
			{
				alert("Veuillez choisir la durée\nPlease the duration");
				persTarif.focus();
				return false;
			}

			var liste = document.getElementsByTagName("input");
			var nbJour = 0;
			var nomChamps = "cours_priv_nb_jour_" + num + "[]";

			for(var i = 0 ; i < liste.length ; i++)
			{
				if(liste[i].getAttribute("type") == "checkbox" && liste[i].getAttribute("name") == nomChamps)
				{
					if(liste[i].checked)
					{
						nbJour++;
					}
				}
			}

			if(nbJour == "0")
			{
				alert("Veuillez cocher au moins un jour pour les cours privés\nPlease select one day minimum");
				return false;
			}

			var lieuRdv = eval("form.cours_priv_lieu_rdv_" + num);
			if(lieuRdv.value == "")
			{
				alert("Veuillez sélectionner un lieu de rendez-vous\nPlease select a meeting place");
				lieuRdv.focus();
				return false;
			}
		}

		var clubSecu = eval("form.cours_priv_club_secu_" + num);
		if(clubSecu && clubSecu.value != "0")
		{
			var clubSecurity = eval("form.cours_priv_club_security_" + num);
			if(clubSecurity.value == "")
			{
				alert("Veuillez sélectionner un jour pour le club sécurity\nPlease select one day minimum for the Club Security");
				clubSecurity.focus();
				return false;
			}
		}

		var clubEva = eval("form.cours_priv_club_evasion_" + num);
		if(clubEva && clubEva.value != "0")
		{
			var liste = document.getElementsByTagName("input");
			var nbJourEva = 0;
			var nomChamps = "cours_priv_club_evasion_nb_jour_" + num + "[]";

			for(var i = 0 ; i < liste.length ; i++)
			{
				if(liste[i].getAttribute("type") == "checkbox" && liste[i].getAttribute("name") == nomChamps)
				{
					if(liste[i].checked)
					{
						nbJourEva++;
					}
				}
			}

			if(nbJourEva == "0")
			{
				alert("Veuillez cocher au moins un jour pour le club Evasion\nPlease select one day minimum for the Club Evasion");
				return false;
			}
		}

	
	return true;
}

function verifMail(email)
{ var b = true;
  if (!email) b = false;
  var filtre  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
  if(!filtre.test(email)) b = false;
  return b;
}	