function check_email(id) {
  var emailStr = document.getElementById(id).value;
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

  var matchArray=emailStr.match(emailPat)
  if (matchArray==null)
    return false;

  var user=matchArray[1]
  var domain=matchArray[2]

  if (user.match(userPat)==null)
    return false;

  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
    for (var i=1;i<=4;i++) {
      if (IPArray[i]>255)
        return false;
    }
    return true;
  }

  var domainArray=domain.match(domainPat)
  if (domainArray==null)
    return false;

  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4 || len<2)
    return false;

  return true;
}

function checkform() {

  var nom = document.getElementById('nom').value;
  var prenom = document.getElementById('prenom').value;
  var email = document.getElementById('email').value;
  var tel = document.getElementById('tel').value;
  var addr1 = document.getElementById('addr1').value;
  var cpostal = document.getElementById('cpostal').value;
  var ville = document.getElementById('ville').value;

  var dep_date = document.getElementById('dep_date').value;
  var dest_date = document.getElementById('dest_date').value;

  var dep_addr1 = document.getElementById('dep_addr1').value;
  var dep_cpostal = document.getElementById('dep_cpostal').value;
  var dep_ville = document.getElementById('dep_ville').value;

  var dest_addr1 = document.getElementById('dest_addr1').value;
  var dest_cpostal = document.getElementById('dest_cpostal').value;
  var dest_ville = document.getElementById('dest_ville').value;

  // Remettre les champs niquel
  document.getElementById('nom').style.border = 'solid 1px #000000';
  document.getElementById('nom').style.background = '#FFFFFF';
  document.getElementById('prenom').style.border = 'solid 1px #000000';
  document.getElementById('prenom').style.background = '#FFFFFF';
  document.getElementById('email').style.border = 'solid 1px #000000';
  document.getElementById('email').style.background = '#FFFFFF';
  document.getElementById('tel').style.border = 'solid 1px #000000';
  document.getElementById('tel').style.background = '#FFFFFF';
  document.getElementById('addr1').style.border = 'solid 1px #000000';
  document.getElementById('addr1').style.background = '#FFFFFF';
  document.getElementById('cpostal').style.border = 'solid 1px #000000';
  document.getElementById('cpostal').style.background = '#FFFFFF';
  document.getElementById('ville').style.border = 'solid 1px #000000';
  document.getElementById('ville').style.background = '#FFFFFF';

  document.getElementById('dep_date').style.border = 'solid 1px #000000';
  document.getElementById('dep_date').style.background = '#FFFFFF';
  document.getElementById('dest_date').style.border = 'solid 1px #000000';
  document.getElementById('dest_date').style.background = '#FFFFFF';

  document.getElementById('dep_addr1').style.border = 'solid 1px #000000';
  document.getElementById('dep_addr1').style.background = '#FFFFFF';
  document.getElementById('dep_cpostal').style.border = 'solid 1px #000000';
  document.getElementById('dep_cpostal').style.background = '#FFFFFF';
  document.getElementById('dep_ville').style.border = 'solid 1px #000000';
  document.getElementById('dep_ville').style.background = '#FFFFFF';

  document.getElementById('dest_addr1').style.border = 'solid 1px #000000';
  document.getElementById('dest_addr1').style.background = '#FFFFFF';
  document.getElementById('dest_cpostal').style.border = 'solid 1px #000000';
  document.getElementById('dest_cpostal').style.background = '#FFFFFF';
  document.getElementById('dest_ville').style.border = 'solid 1px #000000';
  document.getElementById('dest_ville').style.background = '#FFFFFF';

  // Coordonnees de depart

  // Verification l'adresse de depart
  if (dep_addr1.length < 2 || dep_addr1.length > 64 ) {
    alert('L\'adresse du point de depart semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('dep_addr1').style.border = 'solid 1px #FE0000';
    document.getElementById('dep_addr1').style.background = '#FFEAE7';
    document.getElementById('dep_addr1').focus();
    return;
  }

  // Verification de la ville du contact
  var filter = /^([a-zA-Z\ \/]{1,64})+$/;
  if (!filter.test(dep_ville) || dep_ville.length < 2) {
    alert('La ville du point de depart semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('dep_ville').style.border = 'solid 1px #FE0000';
    document.getElementById('dep_ville').style.background = '#FFEAE7';
    document.getElementById('dep_ville').focus();
    return;
  }

  // Verification du code postal de depart
  var filter = /^([0-9]{5})+$/;
  if (!filter.test(dep_cpostal) || dep_cpostal.length != 5) {
    alert('Le code postal du point de depart semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('dep_cpostal').style.border = 'solid 1px #FE0000';
    document.getElementById('dep_cpostal').style.background = '#FFEAE7';
    document.getElementById('dep_cpostal').focus();
    return;
  }

  // Coordonnees de destination

  // Verification l'adresse de destination
  if (dest_addr1.length < 2 || dest_addr1.length > 64 ) {
    alert('L\'adresse du point de destination semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('dest_addr1').style.border = 'solid 1px #FE0000';
    document.getElementById('dest_addr1').style.background = '#FFEAE7';
    document.getElementById('dest_addr1').focus();
    return;
  }

  // Verification de la ville de destination
  var filter = /^([a-zA-Z\ \/]{1,64})+$/;
  if (!filter.test(dest_ville) || dest_ville.length < 2) {
    alert('La ville du point de destination semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('dest_ville').style.border = 'solid 1px #FE0000';
    document.getElementById('dest_ville').style.background = '#FFEAE7';
    document.getElementById('dest_ville').focus();
    return;
  }

  // Verification du code postal de destination
  var filter = /^([0-9]{5})+$/;
  if (!filter.test(dest_cpostal) || dest_cpostal.length != 5) {
    alert('Le code postal du point de destination semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('dest_cpostal').style.border = 'solid 1px #FE0000';
    document.getElementById('dest_cpostal').style.background = '#FFEAE7';
    document.getElementById('dest_cpostal').focus();
    return;
  }

  // Periode du demenagement

  // Date de debut
  var filter = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/;
  if (!filter.test(dep_date)) {
    alert('La date de debut de la periode de demenagement semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('dep_date').style.border = 'solid 1px #FE0000';
    document.getElementById('dep_date').style.background = '#FFEAE7';
    document.getElementById('dep_date').focus();
    return;
  }

  // Date de fin
  var filter = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/;
  if (!filter.test(dest_date)) {
    alert('La date de fin de la periode de demenagement semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('dest_date').style.border = 'solid 1px #FE0000';
    document.getElementById('dest_date').style.background = '#FFEAE7';
    document.getElementById('dest_date').focus();
    return;
  }
  // A faire: tester si la date de fin est superieur a la date de debut

  // Coordonnees du contact

  // Verification du nom du contact
  if (nom.length == 0 || nom.length > 64) {
    alert('Le nom du representant semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('nom').style.border = 'solid 1px #FE0000';
    document.getElementById('nom').style.background = '#FFEAE7';
    document.getElementById('nom').focus();
    return;
  }

  // Verification du prenom du contact
  if (prenom.length == 0 || prenom.length > 64) {
    alert('Le prenom du representant semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('prenom').style.border = 'solid 1px #FE0000';
    document.getElementById('prenom').style.background = '#FFEAE7';
    document.getElementById('prenom').focus();
    return;
  }

  // Verification de l'email
  if (!check_email('email')) {
    alert('L\'E-mail du representant semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('email').style.border = 'solid 1px #FE0000';
    document.getElementById('email').style.background = '#FFEAE7';
    document.getElementById('email').focus();
    return;
  }

  // Verification du numero de tel
  var filter = /^([0-9\ \.\-\(\)]{6,20})$/;
  if (!filter.test(tel)) {
    alert('Le No de telephone semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('tel').style.border = 'solid 1px #FE0000';
    document.getElementById('tel').style.background = '#FFEAE7';
    document.getElementById('tel').focus();
    return;
  }

  // Verification l'adresse du contact
  if (addr1.length < 2 || addr1.length > 64 ) {
    alert('L\'adresse semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('addr1').style.border = 'solid 1px #FE0000';
    document.getElementById('addr1').style.background = '#FFEAE7';
    document.getElementById('addr1').focus();
    return;
  }

  // Verification du code postal du contact
  var filter = /^([0-9]{5})+$/;
  if (!filter.test(cpostal) || cpostal.length != 5) {
    alert('Le code postal semble etre incorrect ou non renseigne.\nMerci de corriger');
    document.getElementById('cpostal').style.border = 'solid 1px #FE0000';
    document.getElementById('cpostal').style.background = '#FFEAE7';
    document.getElementById('cpostal').focus();
    return;
  }

  // Verification de la ville du contact
  var filter = /^([a-zA-Z\ \/]{1,64})+$/;
  if (!filter.test(ville) || ville.length < 2) {
    alert('La ville semble etre incorrecte ou non renseignee.\nMerci de corriger');
    document.getElementById('ville').style.border = 'solid 1px #FE0000';
    document.getElementById('ville').style.background = '#FFEAE7';
    document.getElementById('ville').focus();
    return;
  }

  // Verification que l'on accepte la diffusion des coordonnees
  // TODO
  

  document.devis_demenagement.submit();
}
