function ouvreFenetre(urlFenetre,width,height) {
  carac = "toolbar=no,status=no,menubar=no,scrollbars=yes,width="+width+",height="+height;
  fenetre = open(urlFenetre,'popup',carac);
  fenetre.focus();
}

// Aide contextuelle
function aide(motcle,code) {   
		urlaide = 'aideformb.php?rech='+motcle+"&code="+code;
    fenetre = window.open(urlaide,'fenaide','menubar=no,scrollbars=yes,width=450,height=400');
    fenetre.focus();	    
}

function ValideNumerique(chaine, longueur) {
   if(longueur!=0) {
      if (( chaine.search(/[^0-9]/) != -1 ) || (chaine =='') ||(chaine.length < longueur))       return false;
      else return true;
   }
   else {
      if (( chaine.search(/[^0-9]/) != -1 ) || (chaine ==''))       return false;
      else return true;
   }
}  
//-- ------------------------------------------------------------------------------------------------------------------------
function ValidePhone(chaine) {
//-- ------------------------------------------------------------------------------------------------------------------------	
	if(chaine == '') return true;
	if (( chaine.search(/[^0-9]/) != -1 ) ||(chaine.length < 10)) return false;
	if(chaine.charAt(0)!="0") return false ;
	var prefixe = chaine.charAt(1);
	if (prefixe < 1) return false ;
	return true;
}

function testeDate(jour, mois, annee, obligatoire, message) {
   if(obligatoire==1) {
      if((jour=="")||(mois=="")||(annee=="")) {
         alert("Veuillez saisir" + message);
         return false;
      }      
   }

		if ( annee.search(/[^0-9]/) != -1 ) {
		  alert("Il y a une erreur sur" + message);
		  return false;
		}

   if((jour <=0)||(jour>31)
      ||(mois<=0)||(mois>12)
      ||(annee<1900)||(annee>2010) ) {
      alert("Il y a une erreur sur" + message);
      return false;
   }
   if((jour>30) && ((mois==4) || (mois==6) || (mois==9) || (mois==11)) ) {
      alert("Il y a une erreur sur" + message);
      return false;
   }
   if((jour>29) && (mois==2)) {
      alert("Il y a une erreur sur" + message);
      return false;
   }
	 
	var unedate = new Date(eval(annee),eval(mois)-1,eval(jour));
	var annee_compare = unedate.getYear(); 
	if ((Math.abs(annee_compare)+"").length < 4) annee_compare = annee_compare + 1900; 
	if(!((unedate.getDate() == eval(jour)) && (unedate.getMonth() == eval(mois)-1) && (annee_compare == eval(annee)))) {
		alert("Il y a une erreur sur" + message);
		return false;
	}
	 
	if( (isNaN(parseInt(jour,10))) || (isNaN(parseInt(mois,10))) 
		||(isNaN(parseInt(annee,10))) ) {      
		alert("Il y a une erreur sur" + message);
		return false;
	}
	return true;
}   

function compareDates(date1an, date1mois, date1jour, date2an, date2mois, date2jour, nbannees, message) {

   if((date1an - date2an) < nbannees) {         
      if (message != "") alert(message);
      return false;      
   }
   else {
      if(((date1an - date2an) == nbannees) 
          && (date1mois < date2mois) 
         ) {
         if (message != "") alert(message);
         return false;            
      }
      else {
         if(((date1an - date2an) == nbannees) 
          && (date1mois == date2mois ) 
          && (date1jour < date2jour) ) {
            if (message != "") alert(message);
            return false;      
         }
      }
   }   
   return true;   
}   

function compareJours(date1an,date1mois,date1jour,date2an,date2mois,date2jour,nbjours,message) {
   d1 = Date.parse(new Date(date1an, date1mois, date1jour));
   d2 = Date.parse(new Date(date2an, date2mois, date2jour));
      
   if((d2-d1) > (nbjours*24*60*60*1000)) {
      alert(message);
      return false;
   }
   return true;   
}

function calculejours(a,m,j,a2,m2,j2){
   var la_date = new Date(a,m,j,12,12,12);
   var la_date_2 = new Date(a2,m2,j2,12,12,12);
   var separa = parseInt((la_date_2.getTime() - la_date.getTime())/(1000*60*60*24)+1);
   if(separa < 0){
      alert("La date choisie est antérieure à la date courante");
   } else {
      return separa ;
   }
}
   
//INFORMATIONS SUR LE PROJET
function validerprojet() {
	f = document.formulaire;
	
	// quel conducteur ?
	selection = f.type_projet.selectedIndex;
	if(selection==0) {
	  var message = "Merci de préciser pour quel type de projet vous souhaitez une assurance";
	  alert(message) 
	  f.type_projet.focus();
	  return false;
	}
	
	if((f.autoassure[0].checked == false) && (f.autoassure[1].checked == false) && (f.autoassure[2].checked == false) ) {
    var message = "Merci de nous indiquer la situation d'assurance du véhicule que vous souhaitez assurer";
    alert(message) 
    f.autoassure[0].focus();
    return false;
  }
  
	// quel conducteur ?
	selection = f.conducteur.selectedIndex;
	if(selection==0) {
	  var message = "Merci de préciser qui sera le conducteur";
	  alert(message) 
	  f.conducteur.focus();
	  return false;
	}

	// titulaire de la carte ?
	selection = f.titulaire.selectedIndex;
	if(selection==0) {
		var message = "Merci de préciser le titulaire de la carte grise";
	  alert(message)
	  f.titulaire.focus();
	  return false;
	}

	if(f.pre_vente) {
		if((!f.pre_vente[0].checked)&&(!f.pre_vente[1].checked)) {
			alert("Merci de nous indiquer si vous souhaitez bénéficier des avantages de nos partenaires.");
			f.pre_vente[0].focus();
			return false;
		}  
	}
	
	return true;
}

//INFORMATIONS SUR LES CONDUCTEURS
function validerconducteurs(){
	f = document.formulaire;
	
	// Date du jour
	datedujour = new Date();
	annee = datedujour.getFullYear();
	mois = datedujour.getMonth()+1;
	jour = datedujour.getDate();

	// Date de naissance CPrincipal
	dnmoisc = f.dnmoisc.selectedIndex;
	dnjourc = f.dnjourc.selectedIndex;
	dnanc = f.dnanc.value;
	datenaissance = new Date(dnanc, dnmoisc -1, dnjourc);
	
	// Date de permis CPrincipal
	dnjourp = f.dnjourp.value;
	dnmoisp = f.dnmoisp.selectedIndex;	
	dnanp = f.dnanp.value;	
	datepermis = new Date(dnanp, dnmoisp -1, dnjourp);
		
	// Civilité ?
	if((f.sexe[0].checked == false) && (f.sexe[1].checked == false)) {
		var message = "Merci de préciser le sexe du conducteur principal";
		alert(message)
		f.sexe[0].focus();
		return false;
	}

	// Validité date de naissance
	if(!testeDate(dnjourc, dnmoisc,  f.dnanc.value, 1, " la date de naissance")) {
		f.dnjourc.focus();
		return false;
	}

	// Profession ?
	selection = f.idstatut.selectedIndex;
	if(selection==0) {
		var message = "Merci de préciser votre profession";
		alert(message) 
		f.idstatut.focus();
		return false;   
	}

	// Situation familiale
	selection = f.sitfamille.selectedIndex;
	if(selection==0) {
		var message = "Merci de préciser votre situation familiale";
		alert(message) 
		f.sitfamille.focus();
		return false;   
	}
	
	if((f.sitfamille.selectedIndex==1 || f.sitfamille.selectedIndex==4) && (f.conducteur.value==0 || f.conducteur.value==2)) {
		alert("Vous ne pouvez pas être célibataire et avoir un conjoint"+f.sitfamille.selectedIndex+" - "+f.conducteur.value); 
    f.sitfamille.focus();
    return false;
	}

	if(f.sitfamille.selectedIndex==1 && f.titulaire.value == 2) {
		alert("Vous ne pouvez pas être célibataire et avoir un conjoint"+f.sitfamille.selectedIndex+" - "+f.conducteur.value); 
    f.sitfamille.focus();
    return false;
	}

	if(f.sitfamille.selectedIndex==1 && f.titulaire.value == 3) {
		alert("Vous ne pouvez pas être célibataire et avoir un concubin"); 
    f.sitfamille.focus();
    return false;
	}

	if(f.sitfamille.selectedIndex==4 && f.titulaire.value == 2) {
		alert("Vous ne pouvez pas être divorcé, séparé, veuf et avoir un conjoint"); 
    f.sitfamille.focus();
    return false;
	}

	// Validité date d'obtention du permis
	if(!testeDate(dnjourp, dnmoisp, f.dnanp.value, 1, " la date d'obtention du permis"))  {
	  f.dnmoisp.focus();
	  return false;
	}
	
	if(datedujour < datepermis) {
	  alert("La date d'obtention du permis est supérieure à la date du jour.");
	  f.dnanp.focus();
	  return false;
	}
	
	// Conducteur principal ==> entre 18 ans et 100 ans
	var message = "Il y a une erreur sur la date de naissance.\n(Inférieur à 18 ans)";
	if(!compareDates(annee,mois,jour,datenaissance.getFullYear(),datenaissance.getMonth()+1,datenaissance.getDate()+1,18,message)) {
	  f.dnanc.focus();
	  return false;
	}
	
	var message = "Il y a une erreur sur la date de naissance.\n";
	if(!compareDates(datenaissance.getFullYear(),datenaissance.getMonth()+1,datenaissance.getDate()+1,annee,mois,jour,-100,message)) {
	  f.dnanc.focus();
	  return false;
	}   
	
	// Permis à 18 ans   
	var message = "Il y a une erreur sur la date d'obtention du permis.\n(Inférieur à 18 ans)";
	if(!compareDates(f.dnanp.value,dnmoisp+1,dnjourp,f.dnanc.value,dnmoisc,dnjourc,18,message)) {
	  f.dnanp.focus();
	  return false;
	}

	// Conduire accompagnée ?
	if(f.obtentionpermis.value != '') {
		if((f.obtentionpermis[0].checked == false) && (f.obtentionpermis[1].checked == false)) {
		    var message = "Merci de préciser comment vous avez obtenu le permis";
	      alert(message) 
	      f.obtentionpermis[0].focus();
		    return false;
		  }
	}

	// 5 dernières années ?
	if(f.retper.selectedIndex==0) {
	    var message = "Merci de préciser si au cours des 5 dernières années, vous avez fait l'objet de...";
      alert(message) 
      f.retper.focus();
	    return false;
	}

	// déjà assuré ?
	if(f.dejaassure.selectedIndex == 0) {
		alert("Merci de préciser vos antécédents d'assurance"); 
	  f.dejaassure.focus();
	  return false;
	}

	//Vérifications des données du conducteur secondaire
	if(f.conducteur.value == 0 || f.conducteur.value == 2){
	
		if((f.civilite[0].checked == false) && (f.civilite[1].checked == false)) {
			var message = "Merci de préciser le sexe du conducteur secondaire";
			alert(message) 
			f.civilite[0].focus();
			return false;
		}
		
		// Date de naissance CSecondaire
		dnmoiscs = f.dnmoiscs.selectedIndex; // mois naissance CS
		dnjourcs = f.dnjourcs.selectedIndex; // jour naissance CS
		dnancs = f.dnancs.value; // année naissance CS
		datenaissancecs = new Date(dnancs, dnmoiscs -1, dnjourcs);

		// Date de permis CSecondaire
		dnjourpcs = f.dnjourpcs.value;
		dnmoispcs = f.dnmoispcs.selectedIndex;	
		dnanpcs = f.dnanpcs.value;	
		datepermiscs = new Date(dnanpcs, dnmoispcs -1, dnjourpcs);	
		
		// Validité date de naissance
		if(!testeDate(dnjourcs, dnmoiscs, f.dnancs.value, 1, " la date de naissance du conducteur secondaire")) {
		  f.dnjourcs.focus();
		  return false;
		}
		
		if((f.idstatutcs) && (f.idstatutcs.selectedIndex==0)) {
		   alert("Veuillez saisir la profession du conducteur secondaire");
		   f.idstatutcs.focus();
		   return false;  
		}
		
		// Validité date d'obtention du permis
		if(!testeDate(dnjourpcs, dnmoispcs, f.dnanpcs.value, 1, " la date d'obtention du permis du conducteur secondaire"))  {
		  f.dnmoispcs.focus();
		  return false;
		}
		if(datedujour < datepermiscs) {
		  alert("La date d'obtention du permis du conducteur secondaire est supérieure à la date du jour.");
		  f.dnanpcs.focus();
		  return false;
		} 
		// Conducteur principal ==> entre 18 ans et 100 ans
		var message = "Il y a une erreur sur la date de naissance du conducteur secondaire.\n(Inférieur à 18 ans)";
		if(!compareDates(annee,mois,jour,datenaissancecs.getFullYear(),datenaissancecs.getMonth()+1,datenaissancecs.getDate()+1,18,message)) {
		  f.dnancs.focus();
		  return false;
		}
		var message = "Il y a une erreur sur la date de naissance du conducteur secondaire.\n";
		if(!compareDates(datenaissancecs.getFullYear(),datenaissancecs.getMonth()+1,datenaissancecs.getDate()+1,annee,mois,jour,-100,message)) {
		  f.dnancs.focus();
		  return false;
		}
		
		// Permis à 18 ans   
		var message = "Il y a une erreur sur la date d'obtention du permis du conducteur secondaire.\n(Inférieur à 18 ans)";
		if(!compareDates(f.dnanpcs.value,dnmoispcs,dnjourpcs,f.dnancs.value,dnmoiscs,dnjourcs,18,message)) {
		  f.dnanpcs.focus();
		  return false;
		}
	
		// 5 dernières années ?
		if(f.retpercs.selectedIndex==0) {
	    alert("Merci de préciser si au cours des 5 dernières années, le conducteur secondaire a fait l'objet de...") 
	    f.retpercs.focus();
	    return false;
		}

		if(f.dejaassurecs.selectedIndex == 0) {
	    alert("Merci de nous indiquer si le conducteur secondaire est actuellement assuré") 
	    f.dejaassurecs.focus();
	    return false;
		}		
	}

	// Conjoint
	// ----------------
	if(f.conducteur.value != 2 && (f.sitfamille.value == 2 || f.sitfamille.value == 4)) {
		conj_dn_an = f.cnc_date_naiss_a.value;
		conj_dn_mois = f.cnc_date_naiss_m.selectedIndex;
		conj_dn_jour = f.cnc_date_naiss_j.selectedIndex;		
		conj_date_naiss = new Date(conj_dn_an, conj_dn_mois -1, conj_dn_jour);

		if(f.conj_permis[0].checked == false && f.conj_permis[1].checked == false){
			alert("Merci de préciser si votre conjoint/concubin a le permis de conduire"); 
			f.conj_permis[0].focus();
			return false;
		}

		// Validité date de naissance
		if(!testeDate(conj_dn_jour, conj_dn_mois, conj_dn_an, 1, " la date de naissance du conjoint/concubin")) {
			f.cnc_date_naiss_a.focus();
			return false;
		}

		// Conjoint ==> entre 18 ans et 100 ans
		var message = "Il y a une erreur sur la date de naissance du conjoint/concubin.\n(Inférieur à 18 ans)";
		if(!compareDates(annee,mois,jour,conj_date_naiss.getFullYear(),conj_date_naiss.getMonth()+1,conj_date_naiss.getDate()+1,18,message)) {
		  f.cnc_date_naiss_a.focus();
		  return false;
		}

		var message = "Il y a une erreur sur la date de naissance du conjoint/concubin.\n";
		if(!compareDates(conj_date_naiss.getFullYear(),conj_date_naiss.getMonth()+1,conj_date_naiss.getDate()+1,annee,mois,jour,-100,message)) {
		  f.conj_date_naiss_a.focus();
		  return false;
		}

		// Si le conjoint à le permis B
		//-----------------------------------
		if(f.conj_permis[0].checked == true){
			conj_dp_an = f.cnc_date_permis_a.value;
			conj_dp_mois = f.cnc_date_permis_m.selectedIndex;
			conj_dp_jour = f.cnc_date_permis_j.selectedIndex;		
			conj_date_permis = new Date(conj_dp_an, conj_dp_mois -1, conj_dp_jour);		

			// Validité date d'obtention du permis
			if(!testeDate(conj_dp_jour, conj_dp_mois, conj_dp_an, 1, " la date d'obtention du permis du conjoint/concubin."))  {
			  f.cnc_date_permis_a.focus();
			  return false;
			}

			if(datedujour < conj_date_permis) {
			  alert("La date d'obtention du permis du conjoint/concubin est supérieure à la date du jour.");
			  f.cnc_date_permis_a.focus();
			  return false;
			}

			// Permis à 18 ans
			var message = "Il y a une erreur sur la date d'obtention du permis du conjoint/concubin.\n(Inférieur à 18 ans)";
			if(!compareDates(conj_dp_an, conj_dp_mois + 1, conj_dp_jour, conj_dn_an, conj_dn_mois, conj_dn_jour, 18, message)) {
			  f.cnc_date_permis_a.focus();
			  return false;
			}
		}
	}

  return true;
}

//INFORMATIONS SUR LES ANTECEDENTS DES CONDUCTEURS
function validerinfocond() {
	f = document.formulaire;
	
	datedujour = new Date();
	annee = datedujour.getFullYear();
	mois = datedujour.getMonth()+1;
	jour = datedujour.getDate();

	if(f.assure.value == '' ) {
	  alert("Merci de nous indiquer depuis combien d'années vous êtes assuré");  
	  f.assure.focus();
	  return false;
	}
	 
	var maxassure = f.maxassure.value;
	var nbannee = eval(f.assure.value);
	if(maxassure < nbannee) {
	  alert("D'après votre date de permis vous ne pouvez pas être assuré depuis "+nbannee+" ans");  
	  f.assure.focus();
	  return false;
	}
	  
  if(f.assuremois.selectedIndex == 0) {
	  alert("Merci de nous indiquer combien de mois d'assurance vous avez eu au cours des 36 derniers mois");  
	  f.assuremois.focus();
	  return false;
	} 

	if(f.crm.value == ""){
    alert("Veuillez renseigner le coefficient de bonus/malus du conducteur principal");
    f.crm.focus();
    return false;
	}
	
  if(isNaN(f.crm.value) || f.crm.value < 0.5 || f.crm.value > 3.5) {
    alert("Le coefficient de bonus/malus doit être un chiffre entre 0.5 et 3.5");
    f.crm.focus();
    return false;
  }
	
	if(f.crm.value == 0.5 && f.nbanneescrm.selectedIndex == 0){
		alert("Veuillez renseigner le nombre d'années au crm à 0.50");
		f.nbanneescrm.focus();
		return false;
	}

	if(f.resil.value == '' ) {
	  alert("Merci de nous indiquer si vous avez été résilié");  
	  f.resil.focus();
	  return false;
	}
	
	if(f.resil.value > 0 && !testeDate(f.resiliejour.value, f.resiliemois.value, f.resiliean.value, 1, " la date de résiliation")){
		// Validité date de résiliation
		f.resiliejour.focus();
		return false;
	}

	// Conducteur principal ?
	if(f.cpautrevehic.value != '') {
		if((f.cpautrevehic[0].checked == false) && (f.cpautrevehic[1].checked == false)) {
	      alert("Merci de préciser si vous êtes conducteur principal d'un autre véhicule") 
	      f.cpautrevehic[0].focus();
		    return false;
		  }
	}

	if(f.nbsinistres.selectedIndex == 0) {
	  alert("Merci de nous indiquer le nombre de sinistres (accidents, bris de glaces, vols, vandalisme ...)\nque vous avez déclarés au cours des 36 derniers mois");  
	  f.nbsinistres.focus();
	  return false;
	}

	if(f.crm.value > 1.0 && (f.nbsinistres.value == '' || f.nbsinistres.value == 0)){
	  alert("Vous avez déclaré un coefficient de malus > 1 mais aucun sinistre.");  
	  f.nbsinistres.focus();
	  return false;
	}

	// usage vehicule ?
	selection = f.usage.selectedIndex;
	if(selection==0) {
		var message = "Merci de préciser l'usage du véhicule que vous souhaitez assurer";
	  alert(message) 
	  f.usage.focus();
	  return false;   
	}

	if(f.kilometrage.selectedIndex == 0) {
	  alert("Merci de nous indiquer le kilometrage annuel moyen que vous envisagez d'effectuer avec ce véhicule");  
	  f.kilometrage.focus();
	  return false;
	}
	
	if(f.nb_vehic.selectedIndex == 0) {
	  alert("Merci de nous indiquer le nombre de véhicules dans votre foyer");  
	  f.nb_vehic.focus();
	  return false;
	}
	
	// valité de la date de naissance de l'enfant 1
	if(f.enfant_1.value != '') {
		if(!testeDate(1, 1, f.enfant_1.value, 1, " la date de naissance de votre enfant (laisser vide si pas d'enfant)")) {
      f.enfant_1.focus();
      return false;
		}
		if (f.enfant_1.value > annee) {
			alert ("Il y a une erreur sur la date de naissance de votre enfant (laisser vide si pas d'enfant)");
			f.enfant_1.focus();
			return false;
		}
	}

	// valité de la date de naissance de l'enfant 2
	if(f.enfant_2.value != '') {
		if(!testeDate(1, 1, f.enfant_2.value, 1, " la date de naissance de votre enfant (laisser vide si pas d'enfant)")) {
      f.enfant_2.focus();
      return false;
		}
		if (f.enfant_2.value > annee) {
			alert ("Il y a une erreur sur la date de naissance de votre enfant (laisser vide si pas d'enfant)");
			f.enfant_2.focus();
			return false;
		}
	}

	// valité de la date de naissance de l'enfant 3
	if(f.enfant_3.value != '') {
		if(!testeDate(1, 1, f.enfant_3.value, 1, " la date de naissance de votre enfant (laisser vide si pas d'enfant)")) {
      f.enfant_3.focus();
      return false;
		}
		if (f.enfant_3.value > annee) {
			alert ("Il y a une erreur sur la date de naissance de votre enfant (laisser vide si pas d'enfant)");
			f.enfant_3.focus();
			return false;
		}
	}

	if(f.nb_permis.selectedIndex == 0) {
	  alert("Merci de nous indiquer le nombre de permis dans votre foyer");  
	  f.nb_permis.focus();
	  return false;
	}
	
	//Vérifications des données du conducteur secondaire
	if(f.conducteur.value == 0 || f.conducteur.value == 2){
		
		if(f.assurecs.value == '' ) {
		  alert("Merci de nous indiquer depuis combien d'années le conducteur secondaire est assuré");  
		  f.assurecs.focus();
		  return false;
		}
	 
		if((f.moisassurecs) && (f.moisassurecs.selectedIndex == 0) ) {
		  alert("Merci de nous indiquer le nombre de mois d'assurance du conducteur secondaire au cours des 36 derniers mois");  
		  f.moisassurecs.focus();
		  return false;
		}
	  
		if(f.crmcs.value == ""){
	    alert("Veuillez renseigner le coefficient de bonus/malus du conducteur secondaire");
	    f.crmcs.focus();
	    return false;
		}
		
	  if(isNaN(f.crmcs.value) || f.crmcs.value < 0.5 || f.crmcs.value > 3.5) {
	    alert("Le coefficient de bonus/malus doit être un chiffre entre 0.5 et 3.5");
	    f.crmcs.focus();
	    return false;
	  }
		
		if(f.crmcs.value == 0.5 && f.nbanneescrmcs.selectedIndex == 0){
			alert("Veuillez renseigner le nombre d'années au crm à 0.50");
			f.nbanneescrmvs.focus();
			return false;
		}
		
		if(f.resilcs.value == '' ) {
		  alert("Merci de nous indiquer si vous avez été résilié");  
		  f.resilcs.focus();
		  return false;
		}
		
		if(f.resilcs.value > 0 && !testeDate(f.resiliejourcs.value, f.resiliemoiscs.value, f.resilieancs.value, 1, " la date de résiliation")){
			// Validité date de résiliation
			f.resiliejourcs.focus();
			return false;
		}
		
		// Conducteur principal d'un autre véhicule ?
		if((f.cpautrevehiccs[0].checked == false) && (f.cpautrevehiccs[1].checked == false)) {
	    var message = "Merci de préciser si vous êtes conducteur principal d'un autre véhicule";
	    alert(message);
	    f.cpautrevehiccs[0].focus();
	    return false;
		}
	}
	
	var conf_crm = true;
	mincrm = 100;
	maxcrm = 100;
	valcrm = (f.crm.value)*100;
	
	if(f.nbsinistres.value != 0) {
		var nbsin = f.nbsinistres.options[f.nbsinistres.selectedIndex].value;
	} else {
		var nbsin = 0;
	}

	if(f.assuremois.value != 36) {
		var interrupt = (Math.min(f.assure.value,3)*12) - f.assuremois.value;
	} else {
		var interrupt = 0;
	}

	for (i=1; i<=f.assure.value; i++) {
		mincrm = Math.floor(mincrm * 0.95);
	}
	
	if (nbsin == 0) {
		for (i=1; i<=f.assure.value; i++) {
			maxcrm = Math.floor(maxcrm * 0.95);
		}
		maxcrm=Math.max(maxcrm,90);
	}
	
	if (interrupt>=12) {
		mincrm = 100;
		maxcrm = 100;
	}
	
	if (mincrm > valcrm) {
		var conf_crm = confirm("Compte tenu des informations suivantes, le bonus indiqué semble trop élevé : \n\n    - coefficent de bonus saisi : "+f.crm.value+"\n    - années d'assurance : "+f.assure.value+"\n    - sinistres : "+nbsin+"\n    - mois d'interruption d'assurance : "+interrupt+"\n\n      cliquez sur 'calculer votre coefficient' pour plus de détail\n\n('OK' pour confirmer un bonus de "+valcrm+", 'Annuler' pour modifier)\n");
	}
	if (maxcrm < valcrm) {
		var conf_crm = confirm("Compte tenu des informations suivantes, le bonus indiqué semble trop faible : \n\n    - coefficent de bonus saisi : "+f.crm.value+"\n    - années d'assurance : "+f.assure.value+"\n    - sinistres : "+nbsin+"\n    - mois d'interruption d'assurance : "+interrupt+"\n\n      cliquez sur 'calculer votre coefficient' pour plus de détail\n\n('OK' pour confirmer un bonus de "+valcrm+", 'Annuler' pour modifier)\n");
	}
	
  return conf_crm;
}

// INFORMATIONS SUR LE VEHICULE
function validerinfoauto() {
	var f = document.auto;	

	// date du jour
	datedujour = new Date();
	annee = 	datedujour.getFullYear();
	mois = datedujour.getMonth()+1;
	jour = datedujour.getDate();	

	// date d'achat du véhicule
	achat_jour = f.achatjour[f.achatjour.selectedIndex].value;
  achat_mois = f.achatmois[f.achatmois.selectedIndex].value;
  achat_an = f.achatan[f.achatan.selectedIndex].value;
	date_achat = new Date(achat_an, achat_mois-1, achat_jour);
	
	// date de mise en circulation du véhicule
	mec_jour = "01";
  mec_mois = f.circulationmois[f.circulationmois.selectedIndex].value;
  mec_an = f.circulationan[f.circulationan.selectedIndex].value;
	date_mec = new Date(mec_an, mec_mois-1, mec_jour);
	
	// date de mise en circulation du véhicule
	mec_jour = "01";
  mec_mois = f.circulationmois[f.circulationmois.selectedIndex].value;
  mec_an = f.circulationan[f.circulationan.selectedIndex].value;
	date_mec = new Date(mec_an, mec_mois-1, mec_jour);
		
	var retour = true;

	if(f.code_gta.value == ''){
		alert("Merci de cliquer sur le bouton véhicule pour sélectionner le véhicule à assurer.");
		return false;
	}
	
	// Date d'achat
	if(f.achatmois.selectedIndex == 0) {
	  alert("Merci de nous indiquer la date d'achat de votre véhicule");  
	  f.achatmois.focus();
	  return false;
	}
      
	if(f.achatan.selectedIndex == 0) {
	  alert("Merci de nous indiquer la date d'achat de votre véhicule");  
	  f.achatan.focus();
	  return false;
	}
	
	if(!testeDate(f.achatjour[f.achatjour.selectedIndex].value, f.achatmois[f.achatmois.selectedIndex].value,  f.achatan[f.achatan.selectedIndex].value, 1, " la date d'achat du véhicule.")) {
	  f.achatmois.focus();
	  return false;
	}

	// Si véhicule actuel : la date d'achat ne peut être supérieure à la date du jour
	if(f.type_projet.value == 1 && date_achat > datedujour){
	  alert("La date d'achat ne peut être supérieure à la date du jour.");
	  f.achatan.focus();
	  return false;
	}
	
	// Si véhicule actuel : la date d'achat ne peut être supérieure à la date du jour
	if(f.type_projet.value == 1 && date_achat > datedujour){
	  alert("La date d'achat ne peut être supérieure à la date du jour.");
	  f.achatan.focus();
	  return false;
	}	

	//Date de premiere mise en circulation
	if(f.circulationmois.selectedIndex == 0) {
	  alert("Merci de nous indiquer la date de première mise en circulation de votre véhicule");  
	  f.circulationmois.focus();
	  return false;
	}
      
	if(f.circulationan.selectedIndex == 0) {
	  alert("Merci de nous indiquer la date de première mise en circulation de votre véhicule");  
	  f.circulationan.focus();
	  return false;
	}
	
	if(f.circulationan.selectedIndex != 0 && f.circulationmois.selectedIndex != 0 && date_mec > date_achat) {
	  alert("La date d'achat ne peut être antérieure à la date de mise en circulation du véhicule.");  
	  f.circulationmois.focus();
	  return false;
	}	
	
	if(!testeDate("01",f.circulationmois[f.circulationmois.selectedIndex].value,  f.circulationan[f.circulationan.selectedIndex].value, 1, " la date de première mise en circulation du véhicule.")) {
	  f.circulationmois.focus();
	  return false;
	}

	if (f.valeurauto.selectedIndex == 0) {
		alert("Merci de préciser la valeur actuelle de votre véhicule.");
		f.valeurauto.focus();
		return false;
	}	

	if(f.acquisition.selectedIndex == 0) {
	  alert("Merci de nous indiquer le mode de financement de votre véhicule");  
	  f.acquisition.focus();
	  return false;
	}
	
	if(f.conserve.selectedIndex == 0) {
	  alert("Merci de nous indiquer le nombre d'années de conservation de votre précédent véhicule");  
	  f.conserve.focus();
	  return false;
	}
	
	if(f.garage.selectedIndex == 0) {
	  alert("Merci de nous indiquer le type de stationnement à votre domicile pour ce véhicule");  
	  f.garage.focus();
	  return false;
	}
	
	if(ValideNumerique(f.cpparking.value,4) == false) {
	  alert("Veuillez saisir le code postal de votre garage.");
	  f.cpparking.focus();
	  return false;
	}          
	
	if(f.communeparking[f.communeparking.selectedIndex].value == "") {
	  alert("Veuillez choisir la commune de votre garage.");
	  f.cpparking.focus();
	  return false;
	}

	if((f.usage.value == 2 || f.usage.value == 3 || f.usage.value == 4) && f.garage_travail.selectedIndex == 0) {
	  alert("Merci de nous indiquer le type de stationnement à votre travail pour ce véhicule");  
	  f.garage_travail.focus();
	  return false;
	}
	
	if((f.usage.value == 2 || f.usage.value == 3 || f.usage.value == 4) && (ValideNumerique(f.cptravail.value,4) == false)) {
	  alert("Veuillez saisir le code postal de votre lieu de travail.");
	  f.cptravail.focus();
	  return false;      
	}   
	
	if((f.usage.value == 2 || f.usage.value == 3 || f.usage.value == 4) && f.communetravail[f.communetravail.selectedIndex].value == "") {
	  alert("Veuillez sélectionner la commune de votre lieu de travail");
	  f.cptravail.focus();
	  return false;
	}

	if (f.type_projet.value == 1 || f.type_projet.value == 4){
		if(f.compagnie.selectedIndex == 0){
			alert("Merci de nous indiquer votre compagnie d'assurance");
			f.compagnie.focus();
			return false;
    }
		if(f.echeancemois.selectedIndex == 0) {
			alert("Merci de nous indiquer l'échéance de votre contrat actuel");  
			f.echeancemois.focus();
			return false;
		}
	}
	
	if((f.garantie[0].checked == false) && (f.garantie[1].checked == false) && (f.garantie[2].checked == false) ) {
    var message = "Merci de préciser le niveau de garantie souhaité";
    alert(message) 
    f.garantie[0].focus();
    return false;
  }

	deb_jour = f.date_deb_jour[f.date_deb_jour.selectedIndex].value;
  deb_mois = f.date_deb_mois[f.date_deb_mois.selectedIndex].value;
  deb_an = f.date_deb_an[f.date_deb_an.selectedIndex].value;
	date_deb = new Date(deb_an, deb_mois-1, deb_jour);
	date_du_jour = new Date(annee, mois-1, jour);
	
	// Validité du champ date d'effet souhaitée
	if(!testeDate(deb_jour, deb_mois,  deb_an, 0, " la date d'effet du contrat")) {
		f.date_deb_jour.focus();
		return false;
	}      
	
	if (date_deb < date_achat) {
		alert("La date d'effet du contrat ne peut être antérieure à la d'achat du véhicule");
		f.date_deb_jour.focus();
		return false;  
	}
	
	if (date_deb < date_du_jour) {
		alert("La date d'effet du contrat ne peut être antérieure à la date du jour");
		f.date_deb_jour.focus();
		return false;  
	}
	
	var message = "La date d'effet du contrat ne doit pas se situer à plus d'un an de la date d'aujourdhui.\n";
	if(!compareDates(annee,mois,jour,deb_an,deb_mois,deb_jour,-1,message)) {
		f.date_deb_jour.focus();
		return false;
	}    

	if(f.type_projet.value == 1 || f.type_projet.value == 4) {
		fin_jour = 1;
		fin_mois = f.echeancemois[f.echeancemois.selectedIndex].value;
		if(fin_mois>=mois) fin_an = annee; else fin_an = annee+1;
		date_fin = new Date(fin_an, fin_mois, fin_jour);  
		if(date_deb - date_fin < 0) {
			message = "L'échéance que vous avez indiqué pour votre contrat est le "+fin_mois+"/"+fin_an+".\nMerci de confirmer que vous souhaitez souscrire votre contrat pour le "+deb_jour+"/"+deb_mois+"/"+deb_an+".\n(OK pour confirmer, Annuler pour modifier)";
			return confirm(message);
		}
	}
	
	return true;
}

function ValiderInfoLuxe() {
	
	var f = document.luxe; 
	
	if(f.valeurneuf.value<=0 || f.valeurneuf.value=="" || ValideNumerique(f.valeurneuf.value, 0) == false) {
		alert("Merci de préciser la valeur à neuf de votre véhicule (en euros),\nsans indiquer de décimales (pas de . ou , ou espaces)");
		f.valeurneuf.focus();
		return false;
	}

	if(f.valeuroption.value<0 || f.valeuroption.value=="" || ValideNumerique(f.valeuroption.value, 0) == false) {
		alert("Merci de préciser la valeur des options de votre véhicule (en euros),\nsans indiquer de décimales (pas de . ou , ou espaces)");
		f.valeuroption.focus();
		return false;
	}

	return true;
}

function valider_coordonnees () {

	f = document.auto;
	datedujour = new Date();
  annee = 	datedujour.getFullYear();
  mois = datedujour.getMonth()+1;
  jour = datedujour.getDate();	
	deb_jour = f.date_deb_jour[f.date_deb_jour.selectedIndex].value;
	deb_mois = f.date_deb_mois[f.date_deb_mois.selectedIndex].value;
	deb_an = f.date_deb_an[f.date_deb_an.selectedIndex].value;
	date_deb = new Date(deb_an, deb_mois - 1, deb_jour,23,59,59);  


	// split des moyens en fonction des assureurs
	if(f.moyen.length>0) {
		if(f.moyen[0].checked==true) moyen = f.moyen[0].value;
		if(f.moyen[1].checked==true) moyen = f.moyen[1].value;
	} else {
		moyen = f.moyen.value;
	}

	// Validité de l'horaire de contact
	if(moyen==8) {
		if (f.heure_contact.selectedIndex==0 || f.date_contact.selectedIndex==0 ) {
			alert("Veuillez préciser l'horaire de contact");
			f.date_contact.focus();
	  	return false;
		}
	}

	// Validité du champ date d'effet souhaitée
	if(!testeDate(deb_jour, deb_mois,  deb_an, 1, " la date d'effet envisagée \n(même approximative) pour votre contrat.")) {
	  f.date_deb_jour.focus();
	  return false;
	}      
	
	if (date_deb < datedujour) {
	  alert("La date d'effet du contrat ne peut être antérieure à la date du jour");
		f.date_deb_jour.focus();
		return false;  
	}

   var message = "La date d'effet du contrat ne doit pas se situer à plus d'un an de la date d'aujourdhui.\n";

   if(!compareDates(annee,mois,jour,deb_an,deb_mois,deb_jour,-1,message)) {
      f.date_deb_jour.focus();
      return false;
   }            	

	if(f.periodicite.selectedIndex == 0) {
      alert("Merci de préciser la périodicité de règlement des primes d'assurance\r\nque vous envisagez en cas de souscription de votre contrat.");
      f.periodicite.focus();
      return false;
	}
	
	if(f.cond_sec.value > 0) {
		if (f.nom_cs.value == ''){
			alert("Merci de préciser le nom du conducteur secondaire.");
			f.nom_cs.focus();
			return false;
		}
		if (f.prenom_cs.value == ''){
			alert("Merci de préciser le prenom du conducteur secondaire.");
			f.prenom_cs.focus();
			return false;
		} 
	}
	
	if(f.idtitulaire.value != 1) {	

		tit_naiss_jour = f.tit_naiss_jour[f.tit_naiss_jour.selectedIndex].value;
		tit_naiss_mois = f.tit_naiss_mois[f.tit_naiss_mois.selectedIndex].value;

		if(f.tit_sexe.selectedIndex == 0) {
			var message = "Merci de préciser la civilité";
		  alert(message) 
		  f.tit_sexe.focus();
		  return false;   
		}
		
		if (f.tit_nom.value == ''){alert("Merci de préciser le nom du titulaire de la carte grise.");f.tit_nom.focus();return false;}
		if (f.tit_prenom.value == ''){alert("Merci de préciser le prenom du titulaire de la carte grise.");f.tit_prenom.focus();return false;} 

		if(!testeDate(tit_naiss_jour, tit_naiss_mois, f.tit_naiss_an.value, 1, " la date de naissance du titulaire de la carte grise.")) {
		  f.tit_naiss_jour.focus();
		  return false;
		}
		message="Le titulaire de la carte grise ne peut avoir moins de 18 ans, veuillez vérifier sa date de naissance.";


		if(!compareDates(annee,mois,jour,f.tit_naiss_an.value,tit_naiss_mois,tit_naiss_jour,18,message)) {
		  f.tit_naiss_jour.focus();
		  return false;
		} 
	
	
	}
	
	if (f.nom.value == ''){alert("Merci de préciser votre nom.");f.nom.focus();return false;}
	if (f.prenom.value == ''){alert("Merci de préciser votre prénom.");f.prenom.focus();return false;}
	if (f.adresse1.value == ''){alert("Merci de préciser votre adresse.");f.adresse1.focus();return false;}
	
	
  if (ValideNumerique(f.cpparking.value,4) == false) {
      alert("Veuillez sélectionner le code postal de votre domicile");
      f.cpparking.focus();
      return false;
  }
  
	if(navigator.userAgent.indexOf('MSIE') > 0 ) {
	  if(f.communeparking[f.communeparking.selectedIndex].value == "") {
      alert("Veuillez sélectionner le code postal de votre domicile");
      f.cpparking.focus();
      return false;
	  }
	}
	
	if (f.e_mail.value == ''){alert("Merci de préciser votre email.");f.e_mail.focus();return false;}
	if((f.e_mail.value.indexOf("@")==-1) || (f.e_mail.value.indexOf(".")==-1)) {
      alert("Il y a une erreur sur l'email.");
      f.e_mail.focus();
      return false;
  }      
	if(!ValidePhone(f.tel.value)) {
      alert("Le numéro de téléphone doit comporter 10 chiffres sans espaces.");
      f.tel.focus();
      return false;
	}
	if(!ValidePhone(f.tel_mob.value)) {
	  alert("Le numéro de téléphone mobile doit comporter 10 chiffres sans espaces.");
	  f.tel_mob.focus();
	  return false;
	}
	if(!ValidePhone(f.tel_pro.value)) {
	  alert("Le numéro de téléphone professionnel doit comporter 10 chiffres sans espaces.");
	  f.tel_pro.focus();
	  return false;
	}
	if( (f.tel.value.length + f.tel_mob.value.length + f.tel_pro.value.length)==0 ) {
	  alert("Au moins un numéro de téléphone doit être indiqué.");
	  f.tel.focus();
	  return false;
	}

	return true;
}
