// JavaScript Document

//-------------------------------------------------------
//Gestion des champs de texte
//-------------------------------------------------------
function mandatoryText(input,fieldName)
{    
 if(input.value==''||input==null)
   {
     if(input!=document.getElementById('EMVCELLPHONE_FIELD'))
      {
         alert('Veuillez saisir '+fieldName+'.');      
         input.focus();
      }
    return false;
   }else{
    return true;
   }
}
//-------------------------------------------------------
//-------------------------------------------------------


//-------------------------------------------------------
//Gestion d'un champ numérique
//-------------------------------------------------------
function isInteger(input,fieldName)
{
  var i;
  for(i=0;i<input.value.length;i++)
     {
       var c=input.value.charAt(i);
       if(((c<'0')||(c>'9')))
       {
        alert(fieldName+' n\'est pas valide.');
        input.focus();
        return false;
       }
     }
   return true;
}
//-------------------------------------------------------
//-------------------------------------------------------


//-------------------------------------------------------
//Gestion de checkbox pour plusieur choix
//-------------------------------------------------------
function mandatoryCheckBox(checkBox1,checkBox2,checkBox3)
{
 alert('test');
 
}
//-------------------------------------------------------
//-------------------------------------------------------


//-------------------------------------------------------
//Gestion de la date de naissance
//-------------------------------------------------------
function isDDNok(input,lib)
{ 
  if(input.value==''||input.value==''||input.value=='')
    {
       alert('Veuillez sélectionner '+lib+'.');
       input.focus();
       return false;
    }else{      
      return true;
    }
}
//-------------------------------------------------------
//-------------------------------------------------------


//-------------------------------------------------------
//Gestion de l'email
//-------------------------------------------------------
function isEmail(emailAddress)
{
            emailAddressValue=emailAddress.value.toLowerCase();
            var countryTLDs=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$/;
            var gTLDs=/^(aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org)$/;
            var basicAddress=/^(.+)@(.+)$/;
            var specialChars='\\(\\)><@,;:\\\\\\\"\\.\\[\\]';
            var validChars='\[^\\s'+specialChars+'\]';
            var validCharset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\'-_.';
            var quotedUser='(\"[^\"]*\")';
            var atom=validChars+'+';
            var word='('+atom+'|'+quotedUser+')';
            var validUser=new RegExp('^'+word+'(\.'+word+')*$');
            var symDomain=new RegExp('^'+atom+'(\.'+atom+')*$');
            var matchArray=emailAddressValue.match(basicAddress);
            if(emailAddress.value==''||emailAddress==null)
            {
              return true;
            }
            if(matchArray==null)
            {
              alert('L\'adresse Email semble incorrecte,\nveuillez vérifier la syntaxe.');
              emailAddress.focus();
              return false;
            }
            else
            {
              var user=matchArray[1];
              var domain=matchArray[2];
              for(i=0;i<user.length;i++)
              {
                if(validCharset.indexOf(user.charAt(i))==-1)
                {
                  alert('L\'adresse Email contient des caractères invalides,\nveuillez vérifier la partie avant l\'arobase.');
                  emailAddress.focus();
                  return false;
                }
              }
              for(i=0;i<domain.length;i++)
              {
                if(validCharset.indexOf(domain.charAt(i))==-1)
                {
                  alert('L\'adresse Email contient des caractères invalides,\nveuillez vérifier la partie après l\'arobase.');
                  emailAddress.focus();
                  return false;
                }
              }
              if(user.match(validUser)==null)
              {
                alert('L\'adresse Email semble incorrecte,\nveuillez vérifier la partie avant l\'arobase.');
                emailAddress.focus();
                return false;
              }      
              var atomPat=new RegExp('^'+atom+'$');
              var domArr=domain.split('.');
              var len=domArr.length;
              for(i=0;i<len;i++)
              {
                if(domArr[i].search(atomPat)==-1)
                {
                  alert('L\'adresse Email semble incorrecte,\nveuillez vérifier la partie après l\'arobase.');
                  emailAddress.focus();
                  return false;
                }
              }
              if((domArr[domArr.length-1].length==2)&&(domArr[domArr.length-1].search(countryTLDs)==-1))
              {
              alert('L\'adresse Email semble incorrecte,\nveuillez vérifier le suffixe du domaine.');
              emailAddress.focus();
              return false;
              }
              if((domArr[domArr.length-1].length>2)&&(domArr[domArr.length-1].search(gTLDs)==-1))
              {
                alert('L\'adresse Email semble incorrecte,\nveuillez vérifier le suffixe du domaine.');
                emailAddress.focus();
                return false;
              }
              if((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>6))
              {
                alert('L\'adresse Email semble incorrecte,\nveuillez vérifier le suffixe du domaine.');
                emailAddress.focus();
                return false;
              }
              if(len<2)
              {
                alert('L\'adresse Email semble incorrecte.');
                emailAddress.focus();
                return false;
              }
          }
  return true;
}
//-------------------------------------------------------
//-------------------------------------------------------


//-------------------------------------------------------
//Gestion de la validation des données pour
//les formulaires de question gratuite    
//-------------------------------------------------------           
function validFormMail()
{

if(!mandatoryText(document.getElementById('nom'), 'votre nom')) return; //Vérification du nom
if(!mandatoryText(document.getElementById('prenom'), 'votre prénom')) return; //Vérification du prénom

//Vérification de l'email
if(!mandatoryText(document.getElementById('email'), 'votre email')) return;
if(!isEmail(document.getElementById('email'))) return;  

//Vérification du sujet et du message
if(!mandatoryText(document.getElementById('sujet'), 'votre sujet du message')) return;
if(!mandatoryText(document.getElementById('texte'), 'votre message')) return;//Vérification de la question
//Si tout est bon Gestion des données
document.getElementById('contact').submit();
}
//-------------------------------------------------------
//-------------------------------------------------------
