function turn_red(id) {
  document.getElementById(id).style.border = 'solid 1px #FE0000';
  document.getElementById(id).style.background = '#FFEAE7';
  document.getElementById(id).focus();
}

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(pro) {

  // Premierement, recuperer la totalite des objets
  var type_bien = document.getElementById('type_bien').value;
  var nb_piece = document.getElementById('nb_piece').value;
  var surface = document.getElementById('surface').value;
  var prix = document.getElementById('prix').value;
  var commentaire = document.getElementById('commentaire').value;
  var bien_cpostal = document.getElementById('bien_cpostal').value;
  var bien_ville = document.getElementById('bien_ville').value;
  var form = document.getElementById('annonce');

  if (pro == 0)
  {
    var nom = document.getElementById('nom').value;
    var prenom = document.getElementById('prenom').value;
    var addr1 = document.getElementById('addr1').value;
    var cpostal = document.getElementById('cpostal').value;
    var ville = document.getElementById('ville').value;
  }

  // Remettre les champs niquel
  document.getElementById('nb_piece').style.border = 'solid 1px #000000';
  document.getElementById('nb_piece').style.background = '#FFFFFF';
  document.getElementById('surface').style.border = 'solid 1px #000000';
  document.getElementById('surface').style.background = '#FFFFFF';
  document.getElementById('prix').style.border = 'solid 1px #000000';
  document.getElementById('prix').style.background = '#FFFFFF';
  document.getElementById('commentaire').style.border = 'solid 1px #000000';
  document.getElementById('commentaire').style.background = '#FFFFFF';
  document.getElementById('bien_cpostal').style.border = 'solid 1px #000000';
  document.getElementById('bien_cpostal').style.background = '#FFFFFF';
  document.getElementById('bien_ville').style.border = 'solid 1px #000000';
  document.getElementById('bien_ville').style.background = '#FFFFFF';

  if (pro == 0)
  {
    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('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('email').style.border = 'solid 1px #000000';
    document.getElementById('email').style.background = '#FFFFFF';
  }

  if ((type_bien != 3) && (type_bien != 4)) {
    // Verification du nombre de piece du bien a vendre/louer
    var filter = /^([0-9]{1,2})+$/;
    if ((!filter.test(nb_piece) || nb_piece.length == 0 || nb_piece.length > 2 || nb_piece == '0' || nb_piece == '00')) {
      alert('Le nombre de pieces est incorrect ou non renseigne.\nMerci de corriger');
      turn_red('nb_piece');
      return;
    }
  }

  // Verification de la surface
  var filter = /^([0-9]{1,3})+$/;
  if ((!filter.test(surface) || surface.length == 0 || surface.length > 3 || surface == '0' || surface == '00' || surface == '000')) {
    alert('La surface est incorrecte ou non renseignee.\nMerci de corriger');
    turn_red('surface');
    return;
  }

  // Verification du prix
  var filter = /^([0-9]{1,10})+$/;
  if (!filter.test(prix) || prix.length < 2) {
    alert('Le prix semble etre incorrect ou non renseigne.\nMerci de corriger');
    turn_red('prix');
    return;
  }

  // Verification que le commentaire a bien qqchose dans le ventre
  if (commentaire.length < 30) {
    alert('Vous devez specifier un minimum de commentaire');
    turn_red('commentaire');
    return;
  }

  // Verification du code postal si Emplacement different de "Etranger"
  var filter = /^([0-9]{5,6})+$/;
  if (!filter.test(bien_cpostal) && form.localisation[2].checked == false) {
    alert('Le code postal de votre bien semble etre incorrect ou non renseigne.\nMerci de corriger');
    turn_red('bien_cpostal');
    return;
  }

  // Verification de la ville du bien
  if (bien_ville.length < 2) {
    alert('La ville de votre bien semble etre incorrecte ou non renseignee.\nMerci de corriger');
    turn_red('bien_ville');
    return;
  }

  if (pro == 0)
  {
  // On utilise le formulaire classique

    // Verification du nom du contact
    if (nom.length == 0 || nom.length > 64) {
      alert('Le nom semble etre incorrect ou non renseigne.\nMerci de corriger');
      turn_red('nom');
      return;
    }
  
    // Verification du nom du contact
    if (prenom.length == 0 || prenom.length > 64) {
      alert('Le prenom semble etre incorrect ou non renseigne.\nMerci de corriger');
      turn_red('prenom');
      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');
      turn_red('addr1');
      return;
    }

    // Verification du code postal du contact
    var filter = /^([0-9]{5,6})+$/;
    if (!filter.test(cpostal) || cpostal.length != 5) {
      alert('Le code postal du contact semble etre incorrect ou non renseigne.\nMerci de corriger');
      turn_red('cpostal');
      return;
    }
  
    // Verification de la ville du contact
    if (ville.length < 2) {
      alert('La ville du contact semble etre incorrecte ou non renseignee.\nMerci de corriger');
      turn_red('ville');
      return;
    }

    if (!check_email('email')) {
      alert('L\'email semble etre incorrect ou non renseigne.\nMerci de corriger');
      turn_red('email');
      return;
    }
  
  }

  if (!document.getElementById('accept_cgu').checked) {
    alert('Vous devez accepter les conditions generales d\'utilisation');
    return;
  }

  if (total2pay > 0)
    if (!document.getElementById('accept_cgv').checked) {
      alert('Vous devez accepter les conditions generales de vente');
      return;
    }

  document.annonce.submit();
}

