var cLabels=new Array();

function getRadioVal(rb)
{var L=rb.length;var ret="";
for (var i = 0 ; i< L ; i++)
{if(rb[i].checked) {ret=rb[i].value;break;}}
return(ret);
}


function RetourProjet(){
 document.forms['frmCoordonnees'].onsubmit='';
 document.forms['frmCoordonnees'].action='devis-etape1.asp';
 document.forms['frmCoordonnees'].submit();
}

function UpdateLibelle(oInput,sValue){
  if(oInput)
	  oInput.value=sValue;
}

function UpdateValue(sIdInput, sValue){
	if(document.getElementById(sIdInput)){
	  document.getElementById(sIdInput).value=sValue;
	}
}
function Show(sObjId, bShow){
	if(document.getElementById(sObjId)){
		if(bShow)
			document.getElementById(sObjId).style.display='inline';
		else
			document.getElementById(sObjId).style.display='none';		
	}
}

function ShowHide(sObjId){
	if(document.getElementById(sObjId)){
		if(document.getElementById(sObjId).style.display=='inline')
			document.getElementById(sObjId).style.display='none';
		else
			document.getElementById(sObjId).style.display='inline';		
	}
}

function CheckAerienInclu(){
	if(document.getElementById('aerienInclus')){
		if(document.getElementById('aerienInclus').checked){
			document.getElementById('aerienInclus').value='on';
		}
		else
			{document.getElementById('aerienInclus').value='';}
	}
}
function VerifAerienInclu(){
	if(document.getElementById('aerienInclus') ){
		if(document.getElementById('aerienInclus').value==''){
			document.getElementById('dvvilleDepart').style.display='none';
		}
		else
			{document.getElementById('dvvilleDepart').style.display='inline';}
	}
} 

function CheckDatesFermes(){
	if(document.getElementById('datesFerme')){
		if(document.getElementById('datesFerme').checked){
			document.getElementById('datesFerme').value='1';
		}
		else
			{document.getElementById('datesFerme').value='0';}
	}
}


function CheckTel(telVal){
	if(telVal.substr(0,2)=='06' || telVal.substr(0,4)=='(0)6' || telVal.substr(0,4)=='(06)')
		Show('telDetail', false);
	else
		Show('telDetail', true);
}

//DDV Joost devis-etape1 Fancybox demandant mode de deplacement 
function ValidateMode() {
  var val_error='';
  var oForm=document.forms['DemandeDeDevis'];
	if (!oForm) return false;
  if(getRadioVal(oForm.mode)==''){     
      val_error+= '<p>Veuillez choisir le mode Autonome ou Encadré</p>'; 
      $.fancybox(val_error);    
      return false;
  }
  else {
        oForm.TypeDemande.value = getRadioVal(oForm.mode);
  return true;
  }
}

//DDV Joost rajout 2 combos avec pays supplementairs
function rajouterPays(){
if (document.getElementById('rajoutPays1').style.display == 'none'){
      document.getElementById('rajoutPays1').style.display = 'block';
      document.getElementById('rajoutPays2').style.display = 'block';
      }
      else if (document.getElementById('rajoutPays1').style.display == 'block'){
      document.getElementById('rajoutPays1').style.display = 'none';
      document.getElementById('rajoutPays2').style.display = 'none';
  }
}

 //DDV Joost devis-circuit-etape1 messages fancybox cases/radios à cocher 
function optionDevisCircuit(choix) {

    if (choix == '0'){
    retour = '<p>Vous n\'avez pas selectionné de modification</p>';
    $.fancybox(retour);   
    }
    if (choix == '1'){
       retour = '<p class="redirection"><b>Vous souhaitez partir de province ?</b><br>Nous vous suggérons de procédez à une inscription classique, en nous précisant<br>votre ville de départ lors de l\'étape 2.<br><input type="image" valign="center" onclick=" sendReponseDevis(1)" name="Continuer" src="/img/ddv/b-ok-inscription2.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="sendReponseDevis(3)"><u>Non merci, je souhaite poursuivre ma demande de devis</u></a></p>';      
      }
    if (choix == '5'){
       retour = '<p class="redirection"><b>Vous souhaitez ne partir qu\'avec des amis ou en famille ?</b><br>Aucun soucis ! Sachez cependant que la privatisation d\'un circuit<br>nécessite 4 participants minimum et peut engendrer des surcoûts.<br><input type="image" valign="center" onclick="sendReponseDevis(2)" name="Continuer" src="/img/ddv/b-ok-priv.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="sendReponseDevis(1)"><u>Je préfère procéder à une inscription classique</u></a></p>'; 
      }        
    if (choix == '2'){
       retour = '<p class="redirection"><b>Vous souhaitez choisir votre date de départ ?</b><br>Pas de problème ! Sachez cependant qu\'un tel amménagement<br>nécessite 4 participants minimum et peut engendrer des surcoûts.<br><input type="image" valign="center" onclick="sendReponseDevis(4)" name="Continuer" src="/img/ddv/b-ok-devis.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="sendReponseDevis(1)"><u>Je préfère opter pour l\'une de vos dates de départ programmées</u></a></p>';      
      }
 
    if (choix == '3'){
       retour = '<p class="redirection"><b>Vous souhaitez choisir votre date de départ et partir de province ?</b><br>Pas de soucis ! Sachez cependant qu\'un tel amménagement<br>nécessite 4 participants minimum et peut engendrer des surcoûts.<br><input type="image" valign="center" onclick="sendReponseDevis(3)" name="Continuer" src="/img/ddv/b-ok-devis.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="sendReponseDevis(1)"><u>Je préfère opter pour l\'une de vos dates de départ programmées</u></a></p>';     
      }

    if (choix == '4'){
       retour = '<p class="redirection"><input type="image" valign="center" onclick=" sendReponseDevis(2)" name="Continuer" src="/img/ddv/b-ok-dates.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="sendReponseDevis(3)">Je souhaite poursuivre ma demande de devis</a></p>';     
      }
    if (choix == '6'){
       retour = '<p class="redirection"><b>Vous souhaitez ne partir qu\'avec des amis ou en famille depuis une ville de province ?</b><br>Aucun problème! Sachez cependant que la privatisation d\'un circuit<br>nécessite 4 participants minimum et peut engendrer des surcoûts.<br><input type="image" valign="center" onclick="sendReponseDevis(2)" name="Continuer" src="/img/ddv/b-ok-priv.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="sendReponseDevis(1)"><u>Je préfère procéder à une inscription classique et indiquer ma ville de départ</u></a></p>';     
     }
    $.fancybox(retour,
          {
          'transitionIn' : 'elastic',
          'transitionOut' : 'elastic',
          'padding' : 0,
          'hideOnOverlayClick' : false
    });
}

// DDV Joost devis-circuit-etape1 redirection vers pages suivantes retour boutons dans fancybox
function sendReponseDevis(rep){
  
    var oForm=document.forms['DemandeDeDevis'];
    if (rep=='0')
      oForm.action="devis-circuit-etape1.asp";   
    if (rep=='1') 
      oForm.action="/recherche/fiche.asp";
    if (rep == '2')
      oForm.action ="privatiser-circuit.asp";      
    if (rep=='3')
      oForm.action="devis-etape2.asp";
    if (rep == '4'){
    oForm.action = "privatiser-circuit-sans-dates.asp";
    oForm.typeModifCircuit.value += "Privatiser";
     }
      oForm.submit();
   }

function decocheTout(){
  document.getElementById("modCircuit").checked = false;
  document.getElementById("departPrive").checked = false;
  document.getElementById("departProvince").checked = false;
  document.getElementById("autresDates").checked = false;

}

function getCheckedValues()
{ 
    var oForm=document.forms['DemandeDeDevis'];
    var mes ="";
    for (var i = 0 ; i< 3 ; i++)
    {if(oForm.choix[i].checked) {
        if (oForm.choix[i].value == 1) {mes +="Province-";}
        if (oForm.choix[i].value == 2) {mes +="Privatisation-";}
        if (oForm.choix[i].value == 3) {mes +="Dates-";}
    } }
    if (document.getElementById("extensionCircuit").checked == true) {
        mes+= "Extension";}
    
    oForm.typeModifCircuit.value = mes;
    return true;
}	

//DDV Joost devis-circuit-etape1 action Submit bouton etape suivante 
//var iChoix = '';
function ValidateModType() { 
  var option= '0';
  var motif ='';    
  var oForm=document.forms['DemandeDeDevis'];
      oForm.TypeDemande.value = "8" // On redéfinit le type de la demande en circuit modifié
      if(getRadioVal(oForm.choix)=='' && getRadioVal(oForm.choixTypeModifCircuit)==''){
                optionDevisCircuit(option);
                return false;
          } 
            else {
                  getCheckedValues();

             if (document.getElementById("modCircuit").checked == true) {
            

                    if (getRadioVal(oForm.choixTypeModifCircuit)=='4' || getRadioVal(oForm.choixTypeModifCircuit)=='5' ) {
                        oForm.codeCircuit.value = "";
                        oForm.TypeDemande.value = "";
                        oForm.TypeDemande.value = getRadioVal(oForm.choixTypeModifCircuit);
                    }

                    else 
                    if (getRadioVal(oForm.choixTypeModifCircuit) == ''){
                    $.fancybox("Vous devez choisir le type de modification à apporter au programme.");
                    return false;   
                    }
                    oForm.action = "devis-etape2.asp";
                    
                    decocheTout();
                    sousQuestion();
                    // sousQuestion() se trouve dans fonctions.js
                    return true;
          } 
            else if (document.getElementById("departPrive").checked == true) {
                    
                    if (document.getElementById("autresDates").checked == true){
                    oForm.action = "privatiser-circuit-sans-dates.asp";
                    decocheTout ();
                    return true;
                      } else                    
                    if (document.getElementById("departProvince").checked == true){
                    option = '6';
                    } else {option = '5';  }
                    optionDevisCircuit(option);
                    decocheTout ();
                    return false;
          } 
            else if (document.getElementById("autresDates").checked == true) {
                    if (document.getElementById("departProvince").checked == true) {
                        option = '3';
                    
                    }else{ 
                        option = '2';
                    }
                    optionDevisCircuit(option);
                    decocheTout ();
                    return false;
          }    
            else if (getRadioVal(oForm.choix)=='1') {  
                    option= '1';
                    optionDevisCircuit(option);
                    decocheTout ();
                    return false;
          }

          }                               
      }
 //DDV Joost: date picker fonctionalite date dep/ret en fonction du nombre de jours du voyage     
 function customRange(input) 
{   
        var min = new Date();
        min.setDate(min.getDate() + 3); //valeur 3 = depart possible dans j+3 jours
        var dateDepart = min;
        var dateRetour = null;
        var sejour = new Number(document.getElementById("nombreJours").value);
        if (sejour != 0){
                sejour = sejour - 1; // on enleve 1 jour pour arriver sur nb de jours exacte sejour    
        } else {
                sejour = 1; // pas de duree donc on met un minimu de 1 jour
        }

        if (input.id == "datedepart" )
        {          
            if(document.getElementById("dateretour").value != "jj/mm/aaaa"){ 
                   dateRetour = $("#dateretour").datepicker("getDate");
                   dateRetour.setDate(dateRetour.getDate() - sejour);
            }                       
        }  
        else if (input.id == "dateretour")    {
             if (document.getElementById("datedepart").value == "jj/mm/aaaa") {
                dateDepart.setDate(dateDepart.getDate() + sejour);

             } else {
                dateDepart = $("#datedepart").datepicker("getDate");
                dateRetour = $("#dateretour").datepicker("getDate");
             if (sejour != 0)  { 
                  dateDepart.setDate(dateDepart.getDate() + sejour);
                  }
                  dateRetour.setDate(dateDepart.getDate()+ 270);
             }      
        }              

    return {

     minDate: dateDepart, 
     maxDate: dateRetour
    
   }; 
   
}

				  
function ValidateProjet(){
                  
      
	var m_error='';
	var oForm=document.forms['DemandeDeDevis'];
	var b = oForm.libre.value;
  if(!oForm) return false;
	//initialisation à vide du tableau des labels à mettre en rouge en cas d'erreur
	cLabels=new Array();
	InitLabelClass();
       
	var aErrorDate=false;
	var bErrorDate=false;
	if (oForm.codePaysSM && oForm.codePaysSM.value !="" && oForm.codePays.value==""){oForm.codePays.value = oForm.codePaysSM.value; } // recuperation du codePays au retour de page dans navigateur
	m_error+= BuildErrorMessage(oForm.codePays,'<p>- votre destination.</p>');
	m_error+= BuildErrorMessage(oForm.nbadultes,'<p>- nombre d\'adultes pour ce voyage.</p>');
	m_error+= BuildErrorMessage(oForm.nbenfants,'<p>- nombre d\'enfants pour ce voyage.</p>');
	m_error+= BuildErrorMessage(oForm.datedepart,'<p>- date de départ.</p>');
	m_error+= BuildErrorMessage(oForm.dateretour,'<p>- date de retour.</p>');
	//m_error+= BuildErrorMessage(oForm.datedepart,'- date de départ (au format jj/mm/aaaa).\n', 'date');    alert("ok");
	if(oForm.datedepart.value=='jj/mm/aaaa'){
	  bErrorDate=true;
	}else{
		var today = new Date()
		var myDate=new Date()       
		var aDate=oForm.datedepart.value.split('/');
		if(aDate.length==3){
  		myDate.setFullYear(aDate[2],aDate[1],aDate[0]);
			if( myDate<today)  bErrorDate=true;											
		}else{
  		bErrorDate=true;
		}
  }
  if(bErrorDate){
  	m_error+= '<p>- date de départ (au format jj/mm/aaaa).</p>';
  	cLabels[cLabels.length]=GetLabelFor(oForm.datedepart.id);
	}
	
  if(oForm.dateretour.value=='jj/mm/aaaa'){
	  aErrorDate=true;

		}
                    
  if(aErrorDate){
  	m_error+= '<p>- date de retour (au format jj/mm/aaaa).</p>';
  	cLabels[cLabels.length]=GetLabelFor(oForm.dateretour.id);
	}
                  
	m_error+= BuildErrorMessage(oForm.budget,'<p>- votre budget pour ce voyage.</p>');

  if (oForm.aerienInclus.checked){m_error+= BuildErrorMessage(oForm.villeDepart,'<p>- ville de départ pour ce voyage.</p>');}
	//if(oForm.m_globalCodProCar.value==''){
  	if(oForm.observations && oForm.observations.value!="" )
  	{
  		if( oForm.observations && oForm.observations.value.length>8000){
  		  m_error+='<p>- description de votre projet: '+oForm.observations.value.length+'car. (max 8000 car.).</p>';
  			cLabels[cLabels.length]=GetLabelFor(oForm.observations.id);
  		}
  	}
  	else
  	{
  	m_error+='<p>- description de votre projet.</p>';
  	cLabels[cLabels.length]=GetLabelFor(oForm.observations.id);
  	}

	for(i=0;i<cLabels.length;i++){
		if(cLabels[i])
		 cLabels[i].className="error";
	}
                       
	if(m_error!=""){ 
		m_error='<p>Les informations suivantes semblent être manquantes ou incorrectes :</p>'+m_error;
		$.fancybox(m_error);
		return false;

	}else{  //controle de redirection sur L&N à partir de DDV et CircuitModifie 

	  if (Number(oForm.nbadultes.value) + Number(oForm.nbenfants.value) < 2 ){
          $.fancybox('<p class="redirection"><b>Vous souhaitez partir seul(e).</b><br>Nous ne pouvons proposer de voyages sur mesure qu\'aux groupes d\'au moins deux participants en mode "autonome" (Libre & Nomade), ou quatre participants en mode "encadré".<br>Vous pouvez modifier le nombre de participants, ou consulter nos voyages accompagnés.<br><a href="/recherche/recherche.asp?lr=1&reinit=2&typeCircuit=1&pays=P'+oForm.codePaysSM.value+'"><img src="/img/ddv/b-voyages-acc.gif" style="border:0px; margin:10px 0 20px 0;"></a><br><a href="#" onclick="javascript:$.fancybox.close();"><u>Non, je souhaite modifier le nombre de participants et poursuivre ma demande</u></a></p>');
          return false;
      } 
	  if (oForm.TypeDemande.value != "4" && Number(oForm.nbadultes.value) + Number(oForm.nbenfants.value) < 4  && oForm.libre.value =="1"  ){
          redirectionDevis("'d'");
          return false;
      }
		return true;
	}
}
// DDV Joost ouverture fancybox pours signaler le choix L&N sur mesure ou augmentation de nombre de pax
function redirectionDevis(type){
     var nombre='';      
     if (type == "'d'" || type =="'q'") {nombre='0';}
     if (type == "'p'") {nombre='1';}   
     $.fancybox('<p class="redirection"><b>Vous avez selectionné un nombre de participants, inferieur à 4.</b><br>Sachez que nos voyages accompagnés ne peuvent être assurés qu\'à partir de quatre participants.<br>Pour les groupes de taille infèrieure, optez pour un voyage autonome (Libre & Nomade)<br><input type="image" valign="center" onclick="valideRedirection('+ type + ')" name="Continuer" src="/img/ddv/b-ok-pax.gif" value="1" style="border:0px; margin:10px 0 20px 0;"><br><a href="#" onclick="valideRedirection('+nombre+')"><u>Non, je souhaite modifier le nombre de participants et poursuivre ma demande</u></a></p>');
     return false;
}	
//DDV Joost validation du choix avec continuation sur L&N ou redirection inscription
function valideRedirection(type){    
      if (type=='d') { 
      var oForm=document.forms['DemandeDeDevis'];
            oForm.action = "devis-contact.asp";
            oForm.TypeDemande.value = "4";
      }
      if (type=='p' || type=='q') { 
      var oForm=document.forms['privatiserCircuit'];
          oForm.action = "privatiser-contact.asp";
          oForm.TypeDemande.value = "4";    
      }   
      if (type=='0') {  
            $.fancybox.close();
            return false; 
      }
      if (type=='1') {   
      var oForm=document.forms['privatiserCircuit'];
          oForm.action="/recherche/fiche.asp";
          oForm.TypeDemande.value = "8";
      }

      oForm.submit();
}

function ctrlPrivatiserCircuit(){

	var m_error='';
	var oForm=document.forms['privatiserCircuit'];

	if(!oForm) return false;
//  oForm.typeModifCircuit.value = "Privatiser";

	//initialisation à vide du tableau des labels à mettre en rouge en cas d'erreur
	cLabels=new Array();
	InitLabelClass();

	var aErrorDate=false;
	var bErrorDate=false;
	
	//m_error+= BuildErrorMessage(oForm.codePays,'- votre destination.\n');
	m_error+= BuildErrorMessage(oForm.nbAdultes,'<p>- nombre d\'adultes pour ce voyage.</p>');
	m_error+= BuildErrorMessage(oForm.nbEnfants,'<p>- nombre d\'enfants pour ce voyage.</p>');
	if (oForm.aerienInclus.checked == true)
	m_error+= BuildErrorMessage(oForm.auDepartDe,'<p>- la ville de départ.</p>');    
	//m_error+= BuildErrorMessage(oForm.datedepart,'- date de départ (au format jj/mm/aaaa).\n', 'date');

  if (oForm.datedepart){       // alert privatiser sans dates
    if(oForm.datedepart.value=='' || oForm.datedepart.value=='jj/mm/aaaa'){
  	 m_error+= '<p>- veuillez choisir une date de départ.</p>';
  	 cLabels[cLabels.length]=GetLabelFor(oForm.datedepart.id);
	  } 
	  if(oForm.dateretour.value=='' || oForm.dateretour.value=='jj/mm/aaaa'){
      var sejour = new Number(document.getElementById("nombreJours").value);
      var dep = $("#datedepart").datepicker("getDate");
      dep.setDate(dep.getDate() + sejour);
      var jj = dep.getDate(); var mm = dep.getMonth()+1; var aaaa = dep.getFullYear();
      if (jj <10) { jj = "0" + jj;} if (mm <10) { mm = "0" + mm;}
      oForm.dateretour.value =  jj + "/" + mm + "/" + aaaa; 
	   }
   } else if (oForm.datePrivatiser){   // alert privatiser normal
     if(oForm.datePrivatiser.value=='' || oForm.datePrivatiser.value=='jj/mm/aaaa'){
  	 m_error+= '<p>- veuillez choisir une date de départ.</p>';
//  	 cLabels[cLabels.length]=GetLabelFor(oForm.datePrivatiser.id);
	  }
  } 
    if (oForm.nbAdultes.value!="" && oForm.nbAdultes.value =='0'){
//	     if((Number(oForm.nbAdultes.value) + Number(oForm.nbEnfants.value) > 15) || (Number(oForm.nbAdultes.value) + Number(oForm.nbEnfants.value) < 4)){ 
		   m_error+= '<p>- nombre d\'adultes et/ou enfants.</p>';
		    cLabels[cLabels.length]=GetLabelFor(oForm.nbAdultes.id);
		    cLabels[cLabels.length]=GetLabelFor(oForm.nbEnfants.id);
//			}
	}
  	if(oForm.observations && oForm.observations.value!="" )
  	{
  		if( oForm.observations && oForm.observations.value.length>8000){
  		  m_error+='<p>- la description de votre projet: '+oForm.observations.value.length+'car. (max 8000 car.).</p>'
  			cLabels[cLabels.length]=GetLabelFor(oForm.observations.id);
  		}
  	}
  	else
  	{
  	m_error+='<p>- la description de votre projet.</p>'
  	cLabels[cLabels.length]=GetLabelFor(oForm.observations.id);
  	}
	//}

	for(i=0;i<cLabels.length;i++){
		if(cLabels[i])
		 cLabels[i].className="error";
	}
	
	if(m_error!=""){
		m_error='<p>Les informations suivantes semblent être manquantes ou incorrectes:</p>'+m_error;
		$.fancybox({content : m_error});
		return false;

	}else{ 
	     if (Number(oForm.nbAdultes.value) + Number(oForm.nbEnfants.value) < 4){
	     if (oForm.datedepart){
         redirectionDevis("'p'");
         
         } else {
            redirectionDevis("'q'");
         }
         return false;
       }
		 oForm.aerienInclus.checked = true ;
		return true;
	}
}   

function ValidateCoordonnees(){
	var m_error='';
	var oForm=document.forms['frmCoordonnees'];
	var cNomEnfants=new Array();
	var cPrenomEnfants = new Array();
	var cDateNaissEnfants = new Array();
	var cCiviliteAdulte = new Array();
	var cNomAdultes=new Array();
	var cPrenomAdultes = new Array();
	var bMessageDone=false;
	//initialisation à vide du tableau des labels à mettre en rouge en cas d'erreur
	cLabels=new Array();
	InitLabelClass();
		
	if(document.getElementsByName){
		//Récupération des collections de champs pour les civilités, noms, prénoms et dates de naissance des passagers
		cNomEnfants=document.getElementsByName('nomenfant');
		cPrenomEnfants=document.getElementsByName('prenomenfant');
		cDateNaissEnfants=document.getElementsByName('datenaissanceenfant');
		cCiviliteAdulte=document.getElementsByName('civiliteadulte');
		cNomAdultes=document.getElementsByName('nomadulte');
		cPrenomAdultes=document.getElementsByName('prenomadulte');

		//Partie Vos coordonnées
	  m_error+= BuildErrorMessage(oForm.civilite,'<p>- civilité.</p>');
		m_error+= BuildErrorMessage(oForm.nom,'<p>- nom.</p>');
		m_error+= BuildErrorMessage(oForm.prenom,'<p>- prénom.</p>');
		if(oForm.adresse1.value+oForm.adresse2.value==""){
			//Les deux champs d'adresse sont vides=erreur
  		m_error+='<p>- adresse.</p>';
  		cLabels[cLabels.length]=GetLabelFor(oForm.adresse1.id);
  	}
     
		m_error+= BuildErrorMessage(oForm.codePostal,'<p>- code postal.</p>'); 
    if(oForm.pays.value=='FRA' && oForm.codePostal.value.length >0 && oForm.codePostal.value.length !=5){
		  m_error+= '<p>- code postal (5 chiffres pour la France).</p>';
		  cLabels[cLabels.length]=GetLabelFor(oForm.codePostal.id);
		  } else if (oForm.codePostal.value.length ==5){
       m_error+= BuildErrorMessage(oForm.codePostal,'<p>- code postal.</p>', 'tel');
      }
			
		m_error+= BuildErrorMessage(oForm.ville,'<p>- ville.</p>');
		m_error+= BuildErrorMessage(oForm.pays,'<p>- pays.</p>');
		if(oForm.pays.value=='FRA' && oForm.telephone.value.length >0 && oForm.telephone.value.length !=10){
		  m_error+= '<p>- numéro de téléphone (10 chiffres pour la France).</p>';
			cLabels[cLabels.length]=GetLabelFor(oForm.telephone.id);
		}
		m_error+= BuildErrorMessage(oForm.telephone,'<p>- numéro de téléphone.</p>', 'tel');
		m_error+= BuildErrorMessage(oForm.email,'<p>- adresse email.</p>', 'email');
		
		//Informations voyageurs (adultes puis enfants)	
		m_error+= BuildErrorMessage(cCiviliteAdulte,'<p>- civilité pour tous les adultes.</p>');
		m_error+= BuildErrorMessage(cNomAdultes,'<p>- nom pour tous les adultes.</p>');
		m_error+= BuildErrorMessage(cPrenomAdultes,'- prénom pour tous les adultes.</p>');
		
		m_error+= BuildErrorMessage(cNomEnfants,'<p>- nom pour tous les enfants.</p>');
		m_error+= BuildErrorMessage(cPrenomEnfants,'<p>- prénom pour tous les enfants.</p>');
		m_error+= BuildErrorMessage(cDateNaissEnfants,'<p>- date de naissance pour tous les enfants.</p>');
		m_error+= BuildErrorMessage(cDateNaissEnfants,'<p>- date de naissance valide pour tous les enfants.(jj/mm/aaaa)</p>', 'date');
		m_error+= BuildErrorMessage(cDateNaissEnfants,'<p>- date de naissance valide pour tous les enfants.(jjmmaaaa)</p>','jjmmaaa');	
  }
	//Mise en évidence des labels associés aux champs en erreur
	for(i=0;i<cLabels.length;i++)
  		if(cLabels[i])
  		 cLabels[i].className="error";
	
	//Vérification de la présence d'erreur
	if(m_error!=""){
		//des erreurs existent -> pas de soumission du form
		m_error='<p>Les informations suivantes semblent être manquantes ou incorrectes :</p>'+m_error;
		$.fancybox(m_error);
		return false;
	}else{
		//aucune erreur -> soumission du form
		return true;
	}
	
}

function InitLabelClass(){
	if(document.getElementsByTagName){
  	cLabel=document.getElementsByTagName('label');
  	for(i=0;i<cLabel.length;i++){
			cLabel[i].className="inherit";													 
  	}
  }
}

function GetLabelFor(sInputId){
		if(document.getElementsByTagName){
			cLabel=document.getElementsByTagName('label');
			
			for(iLabel=0;iLabel<cLabel.length;iLabel++){
				if(cLabel[iLabel].htmlFor==sInputId){return cLabel[iLabel];}
			}
			return null;
		}
}

function BuildErrorMessage(oInput, sMessage, sControl){
		var m_sError='';
		var bMessageDone=false;

		if (!oInput) return '';

		if(!oInput.type){
			//Il s'agit d'un tableau d'inputs
  		for(i=0; i<oInput.length;i++){
  			if(!ControlValueOk(oInput[i].value, sControl)){
  				if (!bMessageDone){
  					 m_sError=sMessage;
  					 bMessageDone=true;
  				}// end - if (!bMessageDone)
  				cLabels[cLabels.length]=GetLabelFor(oInput[i].id);
  			}// end - if(oInput[i].value=="")
  		}// end - for(i=0; i<oInput.length;i++)
			
		}else{
			//il s'agit d'un input isolé
			if(!ControlValueOk(oInput.value, sControl)){
    		m_sError=sMessage;
    		cLabels[cLabels.length]=GetLabelFor(oInput.id);
    	}
		}// end - if(oInput.length)
		
		
		return m_sError;
}

function ControlValueOk(sValue, sControl){
  
	switch (sControl){
		case 'isInt':
    		 var re = /^[0-9]+$/
				 return sValue.match(re) && parseInt(sValue)>0;
				 //return parseInt(sValue);
				 break;
		case 'tel':
				 var re = /^[0-9\(\)\+\.\/\-\s]+$/
				 return sValue.match(re);
				 break;
		case 'email':
				 return validateEmailv2(sValue)
				 break;
		case 'jjmmaaaa':
				 return !(sValue=='jj/mm/aaaa')
		case 'date':
				 return  estUneDate(sValue)
		default :
				 return sValue!="";
				 break;
	}// end - switch
	
}


function validateEmailv2(email)
{
// a very simple email validation checking.
// you can add more complex email checking if it helps
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null)
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

// Une annee bisextile tous les 4 ans (a cause de la rotation de 365j -> un quart <-)
// et on ote une annee bisextile tous les 400 ans (car ce n'est pas tout a fait un quart).
// Une année est bissextile si elle est divisible par quatre et pas par 100
// (à moins qu'elle ne soit aussi divisible par 400)
function AnneeBisextile(intAnnee)
{
    if (intAnnee % 100 == 0) {
        if (intAnnee % 400 == 0)
            return true;
    } else
    if (intAnnee % 4 == 0)
        return true;
    return false;
}

// Verifie si le champ saisi est une date valide
//
function estUneDate(value)
{
	var bErr;
	var strValeur;
	var strJour, strMois, strAnnee;
    var intJour, intMois, intAnnee;
	var strSeparateur1, strSeparateur2;

	bErr = 0;
	strValeur = value;
    
    // Verification de la longueur
	if (strValeur.length != 10)
	    bErr = 1;

    // Separation des chaines j/m/a
	strJour = strValeur.substring(0, 2);        // jour
	strSeparateur1 = strValeur.substring(2, 3); // '/'
	strMois = strValeur.substring(3, 5);        // mois
	strSeparateur2 = strValeur.substring(5, 6); // '/'
	strAnnee = strValeur.substring(6);          // année

    // Conversion des chaines en entier
    intJour = parseInt(strJour, 10);
    if (isNaN(intJour))
        bErr = 1;
    intMois = parseInt(strMois, 10);
    if (isNaN(intMois))
        bErr = 1;
    intAnnee = parseInt(strAnnee, 10);
    if (isNaN(intAnnee))
        bErr = 1;
	if (intAnnee < 1900 || intAnnee > 2099)
        bErr = 1;

	// Erreurs de base
	//

        if (intJour < 1 || intJour > 31)
            bErr = 1;
        if (strSeparateur1 != '/')
            bErr = 1;
        if (intMois < 1 || intMois > 12)
            bErr = 1;
        if (strSeparateur2 != '/')
            bErr = 1;


	// Erreurs avancées

	// Mois comportant 30 jours
	if (intMois == 4 || intMois == 6 || intMois == 9 || intMois == 11)
	{
		if (intJour == 31)
		    bErr = 1;
	}

	// Février, année bisextile
	if (intMois == 2)
	{
        if (intJour > 29)
		    bErr = 1;
        if ((intJour == 29) && (!AnneeBisextile(intAnnee)))
            bErr = 1;
	}

    if (bErr == 1)
    {
        return false;
    }

    return true;
}
