//Fonctions utiles pour le devis aussurance auto en ligne

function verifMail(a)
{
// On ouvre la fonction en lui envoyant la contenu du champ
testm = false ;
/*
la on spécifie que l'adresse est false (fausse) dès le début. Cela permet de pouvoir dire que si rien n'est entré dans le champ l'adresse est fausse.
*/ 

 for (var j=1 ; j<(a.length) ; j++) {

/*
Ici, ouverture d'une boucle for à 1 qui permettra de tester du premier jusqu'au dernier caractère de l'adresse e-mail entrée.
*/ 

  if (a.charAt(j)=='@') {
// La on commence les conditions de tests. Ici on cherche l'@
   if (j<(a.length-4)){
// Ici on regarde si il y a bien 4 caractère après le @
    for (var k=j ; k<(a.length-2) ; k++) {
// On ouvre une seconde boucle pour 
     if (a.charAt(k)=='.') testm = true;
/*
on vérifie qu'il y ai bien un point et on met la variable testm à true (implicitement si toutes les conditions sont remplies) puis on ferme les conditions et boucles
*/
    }
   }
  }
 }

return testm ;

}


  /*****Fonctions de traitement de dates******/
  function DecomposeDate(LeParam1,option){ 

// Sépare les jours, les mois et les années dans une date de type "22/05/1981"
// Renvoye le tout dans un tableau de taille 3

LeRetour = new Array(3);
LeJour="";
LeMois="";
LeAnnee="";

// Extraction du jour
i=0;
while((LeParam1.charAt(i)!="/")&&(i<10)){
LeJour+=LeParam1.charAt(i);
i++;
}
if(LeJour.charAt(0)=="0"){
LeJour=LeJour.charAt(1);
}
LeParam1=LeParam1.substring(i+1,LeParam1.length);

// Extraction du mois
i=0;
while((LeParam1.charAt(i)!="/")&&(i<10)){
LeMois+=LeParam1.charAt(i);
i++;
}
if(LeMois.charAt(0)=="0"){
LeMois=LeMois.charAt(1);
}
LeParam1=LeParam1.substring(i+1,LeParam1.length);


// Extraction de l'année
LeAnnee=LeParam1;
LeRetour[0]=LeJour;



if (option=="2") {
LeRetour[1]=LeMois;
var variable = Number(LeAnnee);
variable += 18;
LeRetour[2]=String(variable);
}
else if (option=="3") {
LeRetour[1]=LeMois;
var variable = Number(LeAnnee);
variable += 1;
LeRetour[2]=String(variable);
}
else if (option=="4") {
var variable2 = Number(LeMois);
var variable = Number(LeAnnee);
variable2 += 2;
variable += 1;
LeRetour[1]=String(variable2);
LeRetour[2]=String(variable);
}
else if (option=="5") {
LeRetour[1]=LeMois;
var variable = Number(LeAnnee);
variable += 2;
LeRetour[2]=String(variable);
}
else
{
LeRetour[1]=LeMois;
LeRetour[2]=LeAnnee;
}

return LeRetour;
}

  
  
	// Renvoye une date en format anglais avec le séparateur choisi "02/03/1981" -> "1981-3-2"
// Le premier paramètre est la date a convertir, le second est le caractère de séparation choisi
function DateAnglaise(LeParam1,LeParam2,option){

LaDate = new Array(3);
LaDate = DecomposeDate(LeParam1,option);

LeRetour = LaDate[2]+LeParam2+LaDate[1]+LeParam2+LaDate[0];
return LeRetour;
}



function ComparerDates(LeParam1,LeParam2,option){
// Compare 2 dates au format jj/mm/aaaa
// Renvoye 0 si égalité, 1 si la première est supérieure, sinon 2
var LeParam1 = DateAnglaise(LeParam1,"/",option);// Ne pas oublier d'utiliser cette fonction
// pour convertir en date anglaise, sinon le 05/07/2003 sera compris "7 mai 2003" par JavaScript

var LeParam2 = DateAnglaise(LeParam2,"/",1);
LeParam1 = Date.parse(LeParam1);
LeParam2 = Date.parse(LeParam2);

if (LeParam1 == LeParam2) { 
return 0;
}

if (LeParam1 > LeParam2){
return 1;
}else{
return 2;
}
}

function isDate(d) { 
    // Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa 
    // Par Romuald 
     
    if (d == "") // si la variable est vide on retourne faux 
        return false; 
     
    e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$"); 
     
    if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date 
        return false; // Si pas bon, retourne faux 
  
    // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier 
    j = parseInt(d.split("/")[0], 10); // jour 
    m = parseInt(d.split("/")[1], 10); // mois 
    a = parseInt(d.split("/")[2], 10); // année 
  
    // Si l'année n'est composée que de 2 chiffres on complète automatiquement 
    if (a < 1000) { 
        if (a < 89)    a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900 
        else a+=1900; 
    } 
  
    // Définition du dernier jour de février 
    // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400 
    if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29; 
    else fev = 28; 
  
    // Nombre de jours pour chaque mois 
    nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31); 
  
    // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux 
    return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] ); 
} 
