function valide() {
  var valid = true;
  var errors = new Array;

  if (!verif($('name')))
  {
    errors.push(dictionnaire['nom']);
    valid = false;
  }

  if (!verif($('mail')))
  {
    errors.push(dictionnaire['saisie_mail']);
    valid = false;
  }
  else if (!validMail())
  {
    new Effect.Highlight($('mail'), { startcolor: '#ff0000', endcolor: '#fffffff' });
    errors.push(dictionnaire['verif_mail']);
    valid = false;
  }

  if (cryptogramConfig == 1)
  {
    if (!verif($('cryptogram')))
    {
      errors.push(dictionnaire['code']);
      valid = false;
    }
  }

  if (!verif($('comment')))
  {
    errors.push(dictionnaire['message']);
    valid = false;
  }

  if (!valid)
  {
    $('errors').innerHTML = "";
    for(i =0; i < errors.length; i++)
    {
      $('errors').innerHTML+= errors[i] + "<br />";
    }
    Effect.SlideDown('errorsEffect');

    return false;
  }
  else
  {
    Effect.SlideUp('errorsEffect');
    Effect.Pulsate('contact');

    return true;
  }
}

function validMail()
{
   var reg = new RegExp("^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$");

   return (reg.exec($('mail').value) != null);
}

function verif(element) {
  if (element.value == "")
  {
    new Effect.Highlight(element, { startcolor: '#ff0000', endcolor: '#fffffff' });
    return false;
  } else return true;
}

function validSaisie(evt, type)
{
  var keyCode = evt.which ? evt.which : evt.keyCode;
  if (keyCode==9||keyCode==37||keyCode==39||keyCode==8||keyCode==46) return true;

  if (type == 'mail')
  {
    var interdit = 'àâäãçéèêëìîïòôöõùûüñ &*?!:;,\t#~"^¨%$£?²¤§%*()[]{}<>|\\/`\'';
    if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) return false;
  }
  else if (type == 'code')
  {
    var autorise = '0123456789';
    if (autorise.indexOf(String.fromCharCode(keyCode)) < 0) return false;
  }
  else if (type == 'nom')
  {
    var autorise = 'abcdefijklmnopqrstuvwxyzABCDEFIJKLMNOPQRSTUVWXYZàâäãçéèêëìîïòôöõùûüñÀÂÄÃÇÉÈÊËÌÎÏÒÔÖÕÙÛÜÑ ';
    if (autorise.indexOf(String.fromCharCode(keyCode)) < 0) return false;
  } else return false;
  return true;
}