


////////////////////////////////////////////

imageAide1='../../images/inscription/aide.gif';
imageAide2='../../images/inscription/aide-over.gif';

// les messages d'aide

aideSystemeAide="Cochez la case pour activer l'aide, décochez pour désactiver l'aide";

// etape 1
aideEtape1='Les informations concernant le séjour.<br>Choix de la ville de départ et de retour et des assurances facultatives.';
aideVilleDepart='Sélectionnez la ville de départ';
aideVilleRetour='Sélectionnez la ville de retour';
aideAssuranceAnnulation="Souscrire un contrat d'assurance annulation (facultatif)";
aideAssuranceAnnulationVol="Souscrire un contrat d'assurance annulation + vol bagages (facultatif)";
aideAssuranceRapatriement="Souscrire un contrat d'assurance rapatriement et frais médicaux (facultatif)";

// etape 2
aideEtape2='Les informations concernant le participant';
aidePrenomParticipant='Saisissez le prénom du participant';
aideNomParticipant='Saisissez le nom du participant';
aideDateNaissance='Saisissez la date de naissance du participant (jjmmaaaa)';
aideTelephoneParticipant='Saisissez le numéro de téléphone du domicile du participant';
aidePortableParticipant='Saisissez le numéro de portable du participant';
aideNationaliteParticipant='Saisissez la nationalité du participant'
aideIdentiteParticipant='Saisissez le numéro de la carte d\'identité ou de passeport valide du participant';
aideAdresseParticipant='Saisissez l\'adresse  du domicile du représentant légal du participant'
aideCodePostalParticipant='Saisissez le code postal du domicile du représentant légal du participant'
aideVilleParticipant='Saisissez la ville du domicile du représentant légal du participant'
aideSanteParticipant='indiquez tout problème particulier.<br>Merci de nous signaler par courrier joint, toutes précisions complémentaires';
aideFumeur='Attention ! Au Canada, USA et Australie, fumer est considéré comme un délit';
aideSportsParticipant='Saisissez les sports pratiqués par le participant';
aideFormuleSportParticipant='Cliquez pour modifier.<br>(Indiquez si le participant est débutant)';
aideNomEtablissementScolaire='Saisissez le nom de l\'établissement scolaire du participant';
aideAdresseEtablissementScolaire='Saisissez l\'adresse de l\'établissement scolaire du participant';
aideBoitePostaleEtablissementScolaire='Saisissez l\'eventuelle boite postale de l\'établissement scolaire du participant';
aideCodePostalEtablissementScolaire='Saisissez le code postal de l\'établissement scolaire du participant';
aideVilleEtablissementScolaire='Saisissez le nom de la ville de l\'établissement scolaire du participant';
aideCedexEtablissementScolaire='Saisissez l\'eventuel cedex de l\'établissement scolaire du participant';
aideCiviliteProfesseur='Cliquez pour sélectionner.'
aideNomProfesseur='Saisissez les nom et prénom du professeur de langues';
aideNiveauLangue='Cliquez pour séléctionner le  niveau linguistique.';
aideRangLangue='Cliquez pour modifier.Indiquez s\'il s\'agit de la 1ere, 2ième, ou 3ième langue';
aideNombreAnneeLangue='Saisissez le nombre d\'années d\'étude dans la langue';
aideClasse='Cliquez pour séléctionner la classe du participant';


// etape 3
aideEtape3='Les informations concernant les parents ou le représentant légal du participant';
aideCiviliteParents='Cliquez pour sélectionner';
aidePrenomParents='Saisissez le prénom de la personne ayant l\'autorité parentale';
aideNomParents='Saisissez le nom de la personne ayant l\'autorité parentale';
aideTravailMere='Saisissez le numéro de téléphone de votre lieu de travail';
aideTravailPere='Saisissez le numéro de téléphone de votre lieu de travail';
aideEmailParents='Saisissez votre adresse de messagerie électronique.<br>Veillez à fournir une information correcte qui nous permette d\'accuser réception de votre enregistrement';
aideIndicatifTelephoneUrgenceParents='Dans le cas où le numéro d’urgence est à l’étranger, saisissez l’indicatif international du pays';
aideTelephoneUrgenceParents='Saisissez un numéro (éventuellement de portable) où nous puissions vous contacter en cas d\'urgence pendant le séjour du participant.<br>(Vous pourrez éventuellement modifier ultérieurement ce numéro en vous adressant à nos services)';
aideAnneeNaissanceFreres='Saisissez les années de naissance de vos frères (aaaa)';
aideAnneeNaissanceSoeurs='Saisissez les années de naissance de vos soeurs (aaaa)';


// etape 4
aideEtape4='Les éléments du réglement : le choix du type de paiement, les montants à règler';
///////////////////////////////////////////////////////////////////////////
aideCarteNumero='Pour la carte aurore, vous devez saisir 19 chiffres, 16 dans les autres cas';
aideCarteCryptogramme='Cryptogramme visuel (sécurité supplémentaire): c\'est le dernier bloc de 3 chiffres sur le panneau de signature au verso de la carte bancaire.';
aideCarteDate='Saisissez la date d\'expiration de votre carte bancaire au format mmaa.<br>Attention, elle ne doit pas expirer durant les 35 jours précédent le départ.';
aidePrelevementSolde='Merci de veiller à ce que la carte bancaire servant à payer les arrhes permette aussi le prélevement du solde à l\'échéance.';




function verifierFormatAnnee(objet)
	{
		
	if (objet.value.length>0)
		{
		var erreur=0;
		var tmpAnnees=objet.value.split(",");
		var today= new Date();
		
		for (j=0;j<tmpAnnees.length;j++)	
			{
				
			if (tmpAnnees[j].length>0)
				{
				if (tmpAnnees[j].length<4)
					{
					erreur++;
					}
					else
					{
					if( parseInt(tmpAnnees[j]) < 1950 || parseInt(tmpAnnees[j])> today.getFullYear())
						{
						erreur++;
						}
					}
				}
		}
		if (erreur>0)
			{
			return false;
			}
		}
	return true;
	}




function afficherDetailModeReglement()
	{
	tmpFormulaire=findObj("formulaireInscription");
	switch(tmpFormulaire.modeReglement.identifiant)
		{
		case '10':
		case '11':
			// c'est la carte bancaire ou aurore
			afficherLayer('divCarteBancaire1');
			afficherLayer('divCarteBancaire2');
			break;
		default: 
			cacherLayer('divCarteBancaire1');
			cacherLayer('divCarteBancaire2');
			reinitialiserLayerCarteBancaire(tmpFormulaire);
		}
	}


function reinitialiserLayerCarteBancaire (tmpFormulaire)
	{
	tmpFormulaire.cbNumero.value="";
	tmpFormulaire.cbDate.value="";
	tmpFormulaire.cbCryptogramme.value="";
	tmpFormulaire.cbNom.value="";
	}


function abandonnerInscription()
	{
	if (confirm('Attention, si vous abandonnez maintenant, \nvotre incription ne sera pas prise en compte !'))
		{
		tmpFormulaire=findObj("navigateur");
		tmpFormulaire.action="abandonner_inscription.php"
		tmpFormulaire.submit();
		return true;
		}
	}

/**
*
*
**/

function afficherAssurance(url)
	{
	window.open(url,'','height=600,width=600,status=no,scrollbars=yes,toolbar=no');		
	}



/**
* une fonction qui affiche le prochain choix dans une liste
* et renseigne le champ correspondant pour le POST
**/

function prochainChoix (layer)
	{
	tmpFormulaire=findObj("formulaireInscription");
	var champs=new Array();
	switch(layer)
		{
		case "layerSexe":
			tableau=sexes;
			champs[0]=tmpFormulaire.sexe;
			break
		case "layerSportEtude":
			tableau=sportEtudes;
			champs[0]=tmpFormulaire.niveauSportEtude;
			break
		case "layerNiveauLangue":
			tableau=niveauLangues;
			champs[0]=tmpFormulaire.langueNiveau;
			break
		case "layerClasse":
			tableau=classes;
			champs[0]=tmpFormulaire.langueClasse;
			break
		case "layerRangLangue":
			tableau=rangLangues;
			champs[0]=tmpFormulaire.langueRang;
			break
		case "layerCiviliteProfesseur":
			tableau=civilitesProfesseur;
			champs[0]=tmpFormulaire.etablissementScolaireProfesseurCivilite;
			break		
		case "layerDureeCetelem":
			tableau=dureesCetelem;
			champs[0]=tmpFormulaire.dureeCetelem;
			break			
		case "layerModeReglement":
			tableau=modesReglement;
			champs[0]=tmpFormulaire.modeReglement;
			break			
		case "layerCiviliteParent":
			tableau=civilitesParent;
			champs[0]=tmpFormulaire.parentsCivilite;
			break			
		
		case "layerSituationDeFamille":
			tableau=situationsDeFamille;
			champs[0]=tmpFormulaire.parentsSituationDeFamille;
			break		
			
		
		}
	index=-1; // cas initialisation (aucun choix de fait
	for (i=0;i<tableau.length;i++)
		{
		if(tableau[i].ID==champs[0].identifiant)
			{
			index=i;
			}
		}
	
	index++;
	if (index>=tableau.length)
		{
		index=0;
		}
	
	objet=tableau[index];

	// on renseigne tous les champs concernés
	champs[0].value=objet.libelle;
	champs[0].identifiant=objet.ID;
		
		/*
	// traitement particulier pour les villes
	if (champs.length>2)
		{
		champs[1].value=objet.transport;
		champs[2].value=objet.prix;
		contenu=objet.libelle;
		if (objet.transport.length>0 && objet.prix>0)
			{
			contenu+=' (transport : '+objet.transport+' prix : +'+objet.prix+' &euro;)';
			}

		
		} 
		else
		{
			*/
		contenu=objet.libelle;
		//}
		// on ajoute des espaces si l'entrée est trop petite afin d'avoir une zone cliquable visible
	for  (i=contenu.length;i<10;i++)
		{
		contenu+="&nbsp;";		
		}
	ecrireDansLayer(layer,contenu);
	
	// on met à jour si besoin est le message d'alerte lors de la validation du formulaire
	verifierMessage(champs[0]);
	}
	
	////////////////////////////////////////////////////////

function afficherOnglet (onglet)
	{
	//initialiserPositionLayer();
	for (i=1;i<layers.length;i++)
		{
		if (layers[i]==onglet)
			{
			
			action="show";
			}
			else
			{
			action="hide";
			objet=findObj(layers[i]);
			objet.style.height=0;
			}
		showHideLayers(layers[i],'',action);
		//activerTeteOnglet(i,action);
		}
		
	}

	function alternerTeteOnglet(objet)
		{
			if (objet.className=='ongletHover')
				{
				objet.className=objet.id;
				}
				else
				{
				objet.className='ongletHover';
				}
			//}
		}
	/**
	* une fonction qui va placer les layers selon la hauteur du contenu de layer precedents
	*
	**/
function initialiserPositionLayer()
	{
	tmpLayer1=findObj("layerSejour");
	tmpLayer2=findObj("layerParticipant");
	tmpLayer3=findObj("layerParents");
	tmpLayer4=findObj("layerEnvoyer");

	eval("tmpLayer2.style.top=\"-"+tmpLayer1.offsetHeight+"px\";");
	eval("tmpLayer3.style.top=\"-"+(tmpLayer1.offsetHeight+tmpLayer2.offsetHeight)+"px\";");
	eval("tmpLayer4.style.top=\"-"+(tmpLayer1.offsetHeight+tmpLayer2.offsetHeight+tmpLayer3.offsetHeight)+"px\";");
	
	//activerTeteOnglet(1,'show');
	}
	

	// Example:
// onMouseOver="toolTip('tool tip text here')";
// onMouseOut="toolTip()";
// -or-
// onMouseOver="toolTip('more good stuff', '#FFFF00', 'orange')";
// onMouseOut="toolTip()"; 
/*
MOVE this to the <body>:

*/

var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;
offsetX = 20;
offsetY = 20;
var toolTipSTYLE="";
function initToolTips()
{
  if(ns4||ns6||ie4)
  {
    if(ns4) toolTipSTYLE = document.toolTipLayer;
    else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style;
    else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style;
    if(ns4) document.captureEvents(Event.MOUSEMOVE);
    else
    {
      toolTipSTYLE.visibility = "visible";
      toolTipSTYLE.display = "none";
		
 
 
    }
	

    document.onmousemove = moveToMouseLoc;
  }
}

function toolTip(msg, etape, fg, bg, couleurTexte)
{

if(aideActive)
	{
  //if(toolTip.arguments.length < 2) // hide
  	//{
	if(msg=='') // hide
  		{
		//cacherSelect(0,etape);	
 	   if(ns4) toolTipSTYLE.visibility = "hidden";
 	   else toolTipSTYLE.display = "none";
 	 	}
 	 else // show
 	 {
	  // pour bug ie affichage selects
	//cacherSelect(1,etape);
    if(!fg) fg = "#CCCCCC";
    if(!bg) bg = "#FFFFFF";
	if(!couleurTexte) couleurTexte = "#777777";
	
	switch(etape)
		{
		case '1':
			couleurLiseret = "#FFDFB9";
			break;
		case '2':
			couleurLiseret = "#ECB0B4";
			break;
		case '3':
			couleurLiseret = "#CDD0DA";
			break;
		case '4':
			couleurLiseret = "#B7DFB5";
			break;
		default:
			couleurLiseret = "#E6E6E6";
			break;
		}
	
	 var content =
	 '<table width="200" height="75" border="1" cellpadding="3" cellspacing="0" bordercolor="#006600"  bgcolor="'+couleurLiseret+'">'+
     '   <tr>'+
     '     <td valign="top">'+
	 '<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">'+
     '         <tr> '+
     '           <td height="22" align="center" valign="middle" bgcolor="#E6E6E6" class="onglet"> '+
     '             <font color="#009933" size="4"><b>?</b> </font></td>'+
     '           <td align="center" valign="middle" class="onglet"><font color="#000000">Aide '+
     '             &agrave; l\'inscription</font></td>'+
     '         </tr>'+
     '       </table>'+
	 '<table width="100%" height="53" border="0" cellspacing="0" cellpadding="1" bgcolor="' + bg + 
     '"><tr><td></td></tr>'+
	 '<tr><td align="center"><font face="sans-serif" color="' + couleurTexte +
     '" size="-2">&nbsp\;' + msg +
     '&nbsp\;</font></td></tr></table>'+
	 '</td>'+
     '   </tr>'+
     ' </table>';
	 
	 
    if(ns4)
    {
      toolTipSTYLE.document.write(content);
      toolTipSTYLE.document.close();
      toolTipSTYLE.visibility = "visible";
    }
    if(ns6)
    {
      document.getElementById("toolTipLayer").innerHTML = content;
      toolTipSTYLE.display='block'
    }
    if(ie4)
    {
      document.all("toolTipLayer").innerHTML=content;
      toolTipSTYLE.display='block'
    }
	 }
  }
}



//NS init:
//if(document.layers){ document.captureEvents(Event.MOUSEMOVE); document.onMouseMove = getMouseLoc; }





////////////////////////////////////
function moveToMouseLoc(e)
{
	x=-500;
	y=-500;
  if(!document.all)  //NS
  {
    x = e.pageX;
    y = e.pageY;
  }
  else               //IE
  {
    x = event.x + document.body.scrollLeft;
    y = event.y + document.body.scrollTop;
  }
 
 // equilibrage de l'affichage
 if (x>500)
 	{
	x=400;
	}

 if (y>500)
 	{
	y=400;
	}
   eval("toolTipSTYLE.left =\""+ (x + offsetX )+ "px\";");
 	eval("toolTipSTYLE.top = \""+(y + offsetY) + "px\";");
 
  return true;
}
/**
* une fonction qui cache les selects sous le layer aide
* malgré le bug ie
*
*/


function cacherSelect (on,etape)
	{
		if (typeof etape !='undefined')
			{
			//alert(etape);
			switch (etape)
				{
				case "1":
					if (on==1)
						{
						//showHideLayers('divSelectPaysParticipant','','hide');
						cacherLayer('divSelectVilleDepart');
						cacherLayer('divSelectVilleRetour');
						
						
						}
						else
						{
						//showHideLayers('divSelectPaysParticipant','','show');
						afficherLayer('divSelectVilleDepart');
						afficherLayer('divSelectVilleRetour');
						}
					break;
				case "2":
					if (on==1)
						{
						//showHideLayers('divSelectPaysParticipant','','hide');
						cacherLayer('divSelectPaysParticipant');
						cacherLayer('divEtablissementScolairePays');
						
						
						}
						else
						{
						//showHideLayers('divSelectPaysParticipant','','show');
						afficherLayer('divSelectPaysParticipant');
						afficherLayer('divEtablissementScolairePays');
						}
					break;
				case "3":
				/*
					if (on==1)
						{
						cacherLayer('layerProfessionPere');
						cacherLayer('layerProfessionMere');
						}
						else
						{
						afficherLayer('layerProfessionPere');
						afficherLayer('layerProfessionMere');
						}
						*/
					break;
				}
		

			}
			
	}
	
/**
* une fonction qui met à jour le message affiché lors de la validation ud formulaire
*
*
**/

function verifierMessage(objet)
	{
	if (verificationEnCours && objet.obligatoire=="1")
		{
		verifierFormulaire(objet.form,true);
		}
	}
	
	
	
/**
*
* une fonction qui verifie les champs obligatoires et les particularités de certains champs
*
*
*
*/
function verifierFormulaire(selectedFormulaire,verification)
	{
	verificationEnCours=true;
	var ok=true;
	
	var messageEtapes=new Array();
		messageEtapes[1]='';
		messageEtapes[2]='';
		messageEtapes[3]='';
		messageEtapes[4]='';
		
	var champRadioEnCours=new Array(); // [o]: nom champ [1]  message
		champRadioEnCours[0]=''; 
		champRadioEnCours[1]=''; 
		
	
	var message='';
	
	for (i=0;i<selectedFormulaire.elements.length;i++)
		{
			// LES CHAMPS NON OBLIGATOIRES
					
		//champ annees naissance freres ou soeurs
		if (selectedFormulaire.elements[i].name=='parentsAnneesNaissanceFreres'	
										|| 
										selectedFormulaire.elements[i].name=='parentsAnneesNaissanceSoeurs')
			{
				
			if (!verifierFormatAnnee(selectedFormulaire.elements[i]))
				{
				messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- champ '+selectedFormulaire.elements[i].nomAffichage+' Veillez à saisir les années au format aaaa';
				;
				}
			}
			
		// le fax
		if (selectedFormulaire.elements[i].name.toLowerCase().indexOf('fax')>=0)
			{
			if (selectedFormulaire.elements[i].value.length>0 && 
								!verifierTelephone(selectedFormulaire.elements[i]))
					{
					messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ ' +selectedFormulaire.elements[i].nomAffichage+' n\'est pas valide';
					}
			
			}
			
			
		// LES CHAMPS OBLIGATOIRES
		if (selectedFormulaire.elements[i].obligatoire>=1 )
			{
			if (selectedFormulaire.elements[i].obligatoire==1 )
			{
			//alert(i+selectedFormulaire.elements[i].type+' - '+selectedFormulaire.elements[i].name);
			switch(selectedFormulaire.elements[i].type)
				{
				case "radio":
					// pour le prmeier
					if (champRadioEnCours[0]!=selectedFormulaire.elements[i].name)
						{
						champRadioEnCours[0]=selectedFormulaire.elements[i].name;
						if(!selectedFormulaire.elements[i].checked)
							{
							champRadioEnCours[1]='<br>&nbsp;- le champ '+selectedFormulaire.elements[i].nomAffichage+' est obligatoire';
							}
							else
							{
							champRadioEnCours[1]='';
							}
						}
						// pour les suivants si on a déjà un checked, il prime
						else if( champRadioEnCours[1]!='')
							{
							if(!selectedFormulaire.elements[i].checked)
								{
								champRadioEnCours[1]='<br>&nbsp;- le champ '+selectedFormulaire.elements[i].nomAffichage+' est obligatoire';
								}
								else
								{
								champRadioEnCours[1]='';
								}
							
							}
						
						// pour le dernier 
						if ((i+1)>selectedFormulaire.elements.length
									||  selectedFormulaire.elements[(i+1)].name!=champRadioEnCours[0])
								{
								//message+=champRadioEnCours[1];
								messageEtapes[selectedFormulaire.elements[i].etape]+=champRadioEnCours[1];
								}
					
					
						
					break;
				case "select-one":
				case "select":
					if (selectedFormulaire.elements[i].options[selectedFormulaire.elements[i].selectedIndex].value=='' )
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ '+selectedFormulaire.elements[i].nomAffichage+' est obligatoire';
						}
					break;
				default:
				
					if (selectedFormulaire.elements[i].value.length==0 )
						{
						//ok=false;
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ '+selectedFormulaire.elements[i].nomAffichage+' est obligatoire';
						break;
						}
				}

			} // fin du if (selectedFormulaire.elements[i].obligatoire==1 )
			
		// les cas particuliers
		
		// les telephones
		if (selectedFormulaire.elements[i].name.toLowerCase().indexOf('telephone')>=0)
			{
			if (!verifierTelephone(selectedFormulaire.elements[i]))
					{
					messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ ' +selectedFormulaire.elements[i].nomAffichage+' n\'est pas valide';
					}
			
			}
		// le mail
		if (selectedFormulaire.elements[i].name=='parentsEmail')
			{
			if (!verifierMail(selectedFormulaire.elements[i]))
					{
					messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ ' +selectedFormulaire.elements[i].nomAffichage+' n\'est pas valide';
					}
			}
					
		// LA DATE DE NAISSANCE
		
		if (selectedFormulaire.elements[i].name=='dateNaissance')
			{
			if(!verifierAge(selectedFormulaire.elements[i]))
				{
				messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ '+selectedFormulaire.elements[i].nomAffichage+' n\'est pas valide.\n(jjmmaaaa)';
				}
			}
		// LA VERIFICATION ADHERENT PARTENAIRE CGOS
		if (selectedFormulaire.gamme.value.toLowerCase()=='cgos' && selectedFormulaire.elements[i].name=='parentsNom' )
			{
			if(!verifierAdherentCGOS(selectedFormulaire.nom.value+' '+selectedFormulaire.prenom.value,	
									selectedFormulaire.parentsNom.value+' '+selectedFormulaire.parentsPrenom.value ))
				{
				messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le nom de l’inscrit ou du parent est erroné (C.G.O.S.).\n';
				
				}
			}
		// LE CODE POSTAL
		
		if (selectedFormulaire.elements[i].name=='codePostal')
			{
			if (selectedFormulaire.elements[i].pays=="France" 
						&& selectedFormulaire.elements[i].value.length!=5)
				{
				messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le code postal est érroné';
				break;
				}
				
			}

	// les champs profession
		if (selectedFormulaire.elements[i].name=='parentsProfessionMere'	||
						selectedFormulaire.elements[i].name=='parentsProfessionPere')
			{
				
			if ((selectedFormulaire.parentsProfessionMere.options[selectedFormulaire.parentsProfessionMere.selectedIndex].value.length+selectedFormulaire.parentsProfessionPere.options[selectedFormulaire.parentsProfessionPere.selectedIndex].value.length)==0 )
				{
				messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le champ profession mère ou profession père est obligatoire';
				break;
				}
			}
			
		//---------------------------------------- etape 3
		

		
		// SI LE PAIEMENT PAR CARTE EST CHOISI, ON VERIFIE LA VALIDITE DE LA CARTE
		
		if (selectedFormulaire.elements[i].name=='modeReglement')
			{
			switch(selectedFormulaire.modeReglement.identifiant)
				{
				case '10':
					// c'est la carte bancaire 
					if (selectedFormulaire.cbNumero.value.length<19 ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le numéro de la carte de paiment n\'est pas valide';
						break;
						}
					if (selectedFormulaire.cbCryptogramme.value.length<3 ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le cryptogramme de la carte de paiment n\'est pas valide';
						break;
						}
					if (selectedFormulaire.cbNom.value.length==0 ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le nom du porteur de la carte de paiment n\'est pas valide';
						break;
						}
					if (!verifierValiditePaiementParCarte(selectedFormulaire.cbDate) ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- la date de la carte de paiment n\'est pas valide';
						break;
						}
					break;
					
				case '11':
					// c'est la carte aurore
					if (selectedFormulaire.cbNumero.value.length<23 ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le numero de la carte de paiment n\'est pas valide';
						break;
						}
					if (selectedFormulaire.cbCryptogramme.value.length<3 ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le cryptogramme de la carte de paiment n\'est pas valide';
						break;
						}
					if (selectedFormulaire.cbNom.value.length==0 ) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- le nom du porteur de la carte de paiment n\'est pas valide';
						break;
						}
					if (!verifierValiditePaiementParCarte(selectedFormulaire.cbDate)) 
						{
						messageEtapes[selectedFormulaire.elements[i].etape]+='<br>&nbsp;- la date de la carte de paiment n\'est pas valide';
						break;
						}
					break;
				default: 
					
				}
			}
			
			
				} //fin if obligatoire
				
				
		} // fin du for
	//alert(messageEtapes);
		// construction du message
		for (i=1;i<messageEtapes.length;i++)
			{
			if (messageEtapes[i]!='')
					{
					message+="<br><b>Etape "+i+"</b>:";
					message+=messageEtapes[i];
					}
			// on n'affiche pas toutes le étapes à la fois
			if (message!='')
				{
				break;
				}
			}
			
	if (message=='' && !verification)
		{
		selectedFormulaire.action="verifier_bulletin.php";
		selectedFormulaire.target="";
		selectedFormulaire.submit();
		alert('Le bulletin va être généré, merci de patienter quelques instant ....');
		}
		else
		{			
		message="<b><span class=\"avertissement\">Merci de vérifier les champs suivants:</font></b>"+message;
		ecrireDansLayer('divMessage',message);
		afficherLayer('divMessage');
		tailleDivMessage=getDimensionsLayer('divMessage');
		
		window.resizeTo(largeurFenetre,hauteurFenetre+210);

		}
		
		//// TESTS ////
		/*
				selectedFormulaire.action="verifier_bulletin.php";
		selectedFormulaire.target="";
		selectedFormulaire.submit();
		*/
		}


function activerAide(objet)
	{
	if(objet.etat==0)
		{
		aideActive=true;
		objet.alt="Désactiver l'aide";
		objet.etat=1;
		
		}
		else
		{
		objet.etat=0;
		objet.alt="Activer l'aide";
		aideActive=false;
		}
		
	
	}
	
function survolerAide(objet)
	{
	
	if (objet.survol==1)
		{
		objet.survol=0;
		objet.src2=objet.src;
		}
		else
		{
		objet.survol=1;
		objet.src=objet.src2;
		}
		
	}
	
	/**
	* une fonction qui affecte les différents champ correspondant à une ville
	* et qui affiche le prix le plus grand entre la ville de départ et cele de retour
	* Fait également le total pour le programme
	*/
	
	function selectionnerVille(objet)
		{
		tarif=0;
		//alert(objet.name+'-'+objet.options[objet.selectedIndex]);
		switch(objet.name)
			{
			case "selectVilleDepart":
				objet.form.codeVilleDepart.value=objet.options[objet.selectedIndex].value;
				objet.form.villeDepart.value=objet.options[objet.selectedIndex].value2;
				objet.form.villeDepartTransport.value=objet.options[objet.selectedIndex].typeTransport;
				break;
			case "selectVilleRetour":
				objet.form.codeVilleRetour.value=objet.options[objet.selectedIndex].value;
				objet.form.villeRetour.value=objet.options[objet.selectedIndex].value2;
				objet.form.villeRetourTransport.value=objet.options[objet.selectedIndex].typeTransport;
				break;
			}
	
		tarifDepart=objet.form.selectVilleDepart.options[objet.form.selectVilleDepart.selectedIndex].prix;
		if (typeof (tarifDepart)=='undefined')
			{
			tarifDepart=0;
			}
		tarifDepart=parseFloat(tarifDepart);
		
		tarifRetour=objet.form.selectVilleRetour.options[objet.form.selectVilleRetour.selectedIndex].prix;
		if (typeof (tarifRetour)=='undefined')
			{
			tarifRetour=0;
			}
		tarifRetour=parseFloat(tarifRetour);
		
			// on distingue les tarifs positifs ou negatif
		/*
		if (tarifDepart<0 || tarifRetour<0)
				{
				tarif=tarifDepart+tarifRetour;
				}
				else
				{
					*/
				// on prend le plus grand des deux
				if ( tarifRetour>tarifDepart)
					{
					tarif=tarifRetour;
					}
					else
					{
					tarif=tarifDepart;
					}
					
				
				//}
				
		objet.form.prixAcheminement.value=tarif;
		
		// affichage
		if (tarif!=0)
			{
			ecrireDansLayer('divPrixAcheminement','Prix&nbsp;acheminement&nbsp;:&nbsp;'+roundOff(objet.form.prixAcheminement.value)+'&nbsp;&euro;');
			ecrireDansLayer('divRecapPrixAcheminement',roundOff(objet.form.prixAcheminement.value)+'&nbsp;&euro;');
			}
			else
			{
			ecrireDansLayer('divPrixAcheminement','');
			ecrireDansLayer('divRecapPrixAcheminement','');
			}
			
			
		calculerTotal(objet.form);
	
		}
	
	function calculerTotal (selectedForm)
		{
		total=parseFloat(selectedForm.montantFraisDossier.value);
		// calcul de la remise
		total+=(parseFloat(selectedForm.prixAcheminement.value)+parseFloat(selectedForm.prix.value))-calculerRemise(selectedForm);
		// les assurances
		total+=parseFloat(selectedForm.assurance1Prix.value)+parseFloat(selectedForm.assurance2Prix.value);
		
		ecrireDansLayer('divTotalPrix',roundOff(parseFloat(total))+'&nbsp;&euro;');
		
		// mettre à jour le montant à payer
		
		selectedForm.montantApayer.value=roundOff(parseFloat(total));
		}
		
	function calculerRemise (selectedForm)
		{
		remise=0;
		
			switch(selectedForm.gamme.value.toUpperCase())
				{
					case "CGOS" :
						// POU CGOS LA REMISE S'APPLIQUE SUR LE PREA ET LE SEJOUR
						remise=(parseFloat(selectedForm.prixAcheminement.value)*(parseFloat(selectedForm.tauxRemise.value)/100));
					
					case "CAMIF" :
					case "MACIF" :
						remise+=(parseFloat(selectedForm.prix.value))*(parseFloat(selectedForm.tauxRemise.value)/100);
					break;
				}
		if (remise!=0)
			{
			ecrireDansLayer('divRemise','-'+roundOff(parseFloat(remise))+'&nbsp;&euro;');
			}
		
		return remise;
		}
	
	function calculerAcompte (selectedForm)
		{
		total=parseFloat(selectedForm.montantFraisDossier.value);
		total+=parseFloat(selectedForm.montantArrhes.value);
		
		// les assurances
		total+=parseFloat(selectedForm.assurance1Prix.value)+parseFloat(selectedForm.assurance2Prix.value);
		
		ecrireDansLayer('divAcompte',roundOff(parseFloat(total))+'&nbsp;&euro;');
		
		}
		
	
		
		
	function selectionnerAssurance(objet)
		{
		
		if (objet.value=='rapatriement')
			{
			if (objet.actif==1)
				{
				
				objet.form.assurance2Type.value=objet.value;
				objet.form.assurance2Prix.value=objet.prix;
				}
				else
				{
				objet.form.assurance2Type.value='';
				objet.form.assurance2Prix.value=0;
				}
				// afffichage layer recap
			if (objet.form.assurance2Prix.value==0)
				{
				ecrireDansLayer('divRecapAssurance2','');
				}
				else
				{
				ecrireDansLayer('divRecapAssurance2',lireLayer('divAssurance_'+objet.value)+'&nbsp;'+roundOff(parseFloat(objet.form.assurance2Prix.value))+'&nbsp;&euro;');
				}
			
		
			}
			else
			{
				
			if (objet.actif==1)
				{
				objet.form.assurance1Type.value=objet.value;
				objet.form.assurance1Prix.value=objet.prix;
				}
				else
				{
				objet.form.assurance1Prix.value=0;
				objet.form.assurance1Type.value='';
				}
				
				// afffichage layer recap
			if (objet.form.assurance1Prix.value==0)
				{
				ecrireDansLayer('divRecapAssurance1','');
				}
				else
				{
				ecrireDansLayer('divRecapAssurance1',lireLayer('divAssurance_'+objet.value)+'&nbsp;'+roundOff(parseFloat(objet.form.assurance1Prix.value))+'&nbsp;&euro;');
				}
			
		
			}
		// mise à jour du total et des divs recap
		
		calculerTotal (objet.form);
		calculerAcompte (objet.form);
		}

			


		/**
		* une fonction qui a partir d'une date de naissance retourne l'age 
		*
		**/
			
	function calculerAge(annee,mois,jour,anneeDepart,moisDepart,jourDepart)
		{            

		birthTime = new Date(annee,mois,jour);
		
		//todaysTime = new Date();
		// calcul à partir de la date départ
		todaysTime = new Date(anneeDepart,moisDepart,jourDepart);
		
		todaysYear = todaysTime.getYear();
		if (todaysYear < 2000) todaysYear += 1900;
		todaysMonth = todaysTime.getMonth();
		todaysDate = todaysTime.getDate();
		todaysHour = todaysTime.getHours();
		todaysMinute = todaysTime.getMinutes();
		todaysSecond = todaysTime.getSeconds();
		birthYear = birthTime.getYear();
		if (birthYear < 2000) birthYear += 1900;
		birthMonth = birthTime.getMonth();
		birthDate = birthTime.getDate();
		birthHour = birthTime.getHours();
		birthMinute = birthTime.getMinutes();
		birthSecond = birthTime.getSeconds();
		
		var monarr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
		
		if (((todaysYear % 4 == 0) && (todaysYear % 100 != 0)) || (todaysYear % 400 == 0)) monarr[1] = "29";
		
		countMonth = monarr[todaysTime.getMonth()];
		
		
		if (todaysMinute > birthMinute) {
		diffMinute = todaysMinute - birthMinute;
		calcHour = 0;
		}
		else {
		diffMinute = todaysMinute + 60 - birthMinute;
		calcHour = -1;
		}
		if (todaysHour > birthHour) {
		diffHour = todaysHour - birthHour + calcHour;
		calcDate = 0;
		}
		else {
		diffHour = todaysHour + 24 - birthHour + calcHour;
		calcDate = -1;
		}
		if (todaysDate > birthDate) {
		diffDate = todaysDate - birthDate + calcDate;
		calcMonth = 0;
		}
		else {
		diffDate = todaysDate + countMonth - birthDate + calcDate;
		calcMonth = -1;
		}
		if (todaysMonth > birthMonth) {
		diffMonth = todaysMonth - birthMonth + calcMonth;
		calcYear = 0;
		}
		else {
		diffMonth = todaysMonth + 12 - birthMonth + calcMonth;
		calcYear = -1;
		}
		diffYear = todaysYear - birthYear + calcYear;
		
		if (diffMinute == 60) { diffMinute = 0; diffHour ++; }
		if (diffHour == 24) { diffHour = 0; diffDate ++; }
		if (diffDate == countMonth) { diffDate = 0; diffMonth ++; }
		if (diffMonth == 12) { diffMonth = 0; diffYear ++; }
		
		age = diffYear;
		/* + ' Years, ' + diffMonth 
		+ ' Months, ' + diffDate + ' Days, ' + diffHour + ' Hours, ' 
		+ diffMinute + ' Minutes, ' + todaysSecond + ' Seconds Old';
		*/
		return age;
		} 
		
		
	function verifierMail(objet)
	{
	// doit avoir la forme: _@_.__ au moins
	if (objet.value.indexOf('@')<1
				|| objet.value.lastIndexOf('.')<(objet.value.indexOf('@')+2)
					|| objet.value.lastIndexOf('.')>(objet.value.length-3)
						 
				)
		{
			/*
		alert("Le mail n\'est pas valide");
		objet.select();
		objet.focus();
		*/
		return false;
		}
	return true;
	}
	
	function verifierMasqueSaisie (objet,format)
		{
		masque = null;
		masque = new Mask(format, "string");
		masque.attach(objet);
		// Reformatage
		if (objet.value != '')
	   		{
			objet.value = masque.format(objet.value);
			}
		
		//return true;
		}
		
		
		
		
function roundOff(value)
{
        value = "" + value; //convert value to string
        var precision =2;
		var separateurDecimales=',';
		
        var whole = "" + Math.round(value * Math.pow(10, precision));

        var decPoint = whole.length - precision;

        if(decPoint != 0)
      	  {
                result = whole.substring(0, decPoint);
                result += ".";
          //      result += whole.substring(decPoint, whole.length);
        		tmp= whole.substring(decPoint, whole.length);
        		if (tmp.length==1 )
					{
					tmp+="0";
					}
				result+=tmp;
			}
     	   else
     	   {
                result = whole;
     	   }
        
		// on remplace le point par le séparateur decimales
		result=result.replace(/\./,',');
		
		return result;
}


function gererCodePostal(champCodePostal,pays)
	{
	champCodePostal.pays=pays;
		if (pays.toLowerCase()=='autre')
			{
			champCodePostal.obligatoire="0";
			}
			else
			{
			champCodePostal.obligatoire="1";
			}
	
	}
	

function verifierTelephone (objet)
	{
	if (objet.value.length!=14)
		{
		return false;
		}
	return true;
	}
	

// POUR CAMIF	 ET CGOS
function verifierNumeroAdherent()
	{
	tmpFormulaire=findObj('formulaireInscription');
	
	valide=false;
	
	
	switch(tmpFormulaire.gamme.value)
		{
			case "macif":
				// pas de verification
				valide=true;
				break;
			case "camif":
			


			objet=tmpFormulaire.IDadherent;
			reste=objet.value.slice(6);
			
			
			switch (reste.length)
				{
				case 1:
					if (/[A-Za-z]/.test(reste)) 
						{
						// c'est une lettre 
						valide=true;
						}
					break;
				case 2:
				
					if (/[0-9]/.test(reste.charAt(0)) && /[A-Za-z]/.test(reste.charAt(1))) 
						{
						// c'est un chiffre et une lettre 
						valide=true;
						}
					break;
					
				case 3:
					if (/[0-9]/.test(reste.charAt(0)) && /[0-9]/.test(reste.charAt(1)) && /[A-Za-z]/.test(reste.charAt(2))) 
						{
						// c'est deux chiffre et une lettre 
						valide=true;
						
						}
					break;
				}
				
			if (valide)
					{
					// ON AJOUTE DES ZEROS DEVANT
					var chaineZeros="0000000000";
					objet.value=chaineZeros.substr(0,9-tmpFormulaire.IDadherent.value.length)+tmpFormulaire.IDadherent.value;
					}
		
			break; // fin break gamme
		case "cgos":
			objet=tmpFormulaire.IDadherent;
			var tableControleLettre=new Array('','Z','A','Y','B','X','C','W','D','V','E','U','F','T','G','S','H','R','J','N','K','P','L','M');
					
			if(objet.value.length<2 || objet.value.length>8 )
				{
				valide=false;
				}
				else
				{
					// on verifie la cle
				if (tableControleLettre[(objet.value.substr(0,objet.value.length-1)  % 23)+1]==objet.value.substr(objet.value.length-1).toUpperCase())
					{
					valide=true;
					}
					else
					{
					valide=false;
					}
				}
				
				
			if (valide)
					{
					// ON AJOUTE DES ZEROS DEVANT
					var chaineZeros="0000000000";
					objet.value=chaineZeros.substr(0,8-tmpFormulaire.IDadherent.value.length)+tmpFormulaire.IDadherent.value;
					}
			break;
		default:
		
			valide=true;
			
		}
	
			
			
			
	return valide;
		
	}
	
function verifierSaisieCAMIF (evenement)
	{
	key      = document.all?event.keyCode:evenement.which;
	cle      = String.fromCharCode(key);
	
 
	if (/[A-Za-z0-9]/.test(cle)) 
		{
		return true;
		}
	return false;
	
	}
	
/**
* une fonction qui verifie que les nom et prenoms du participant et du parent saisis sont dans les enregistrements récupérés sur le serveur CGOS
*
*
*/
function verifierAdherentCGOS(participantSaisi,parentSaisi)
	{
	participantValide=false;
	parentValide=false;
	//valide=false;
	tmpFormulaire=findObj('formulaireVerificationAdherent');
	
		for (indexEnfant=0;indexEnfant<adherent.enfants.length;indexEnfant++)
			{
			if(participantSaisi==adherent.enfants[indexEnfant])
					{
					participantValide=true;
					break;
					}
			}
			
			
		if ( (parentSaisi==adherent.nom+' '+adherent.prenom) ||
						(parentSaisi==adherent.conjoint) 
														)
			{
			parentValide=true;
			}
			
	return parentValide && participantValide;
	}
