function soumettre( form ) {
  //////////////////////////////////////////////////////////////////////////////////////
  // Rappel de la charte
  //////////////////////////////////////////////////////////////////////////////////////

  //////////////////////////////////////////////////////////////////////////////////////
  // Contrôle des champs obligatoires (tous)
  // Evidemment, ce contrôle est effectué sur le serveur, mais trop de gens se plaignaient
  // de ne pas être prévenu avant !

  var empty = /^\s*$/;
  if( empty.test( form.auteur.value ) ) {
    alert('Vous devez entrer votre nom.');
    return false;
  }
  
  var email = /^.+@.+\.[a-z]{2,6}$/i;
  if( ! email.test( form.email.value ) ) {
    alert('Vous devez entrer une adresse email.');
    return false;
  }

  //////////////////////////////////////////////////////////////////////////////////////
  // Analyse du titre
  var charte_titre = '';
  var titre = form.titre.value;

  // pas de "problèmes"
  var reg = /(\W|^)(probl[èée]mes?|pbs?)(\W|$)/i;
  if(reg.test(titre)) charte_titre = 'Votre titre contient le mot "problème" (ou assimilé).';

  // pas de "help"
  reg = /(\W|^)(help|aidez|aide|sos|please|plize|secours?|soucis?|marche pas|questions?)(\W|$)/i;
  if(reg.test(titre)) charte_titre = 'Votre titre contient le mot "aide", "sos", "marche pas", "soucis", "marche pas", "question" (ou assimilé).';

  // Pas de "???" ou de "!!!"
  reg = /[?!]{2,}/;
  if(reg.test(titre)) charte_titre = 'Votre titre contient de multiple "?" ou "!".';

  // trop court
  if( empty.test(titre) || (titre.length <= 6) ) charte_titre = 'Votre titre est court, soyez peut-être plus explicite.';

  // Un seul mot
  reg = /^\s*[a-z0-9éèêëàâäîïôöùûü]+\s*$/i;
  if(reg.test(titre)) charte_titre = 'Votre titre ne contient qu\'un seul mot. Vous n\'êtes peut-être pas assez explicite.';
  
  // contient trop de majuscule
  reg = /([A-Z])/;
  var nb_maj = 0;
  var longueur_titre = titre.length;
  for(var i = 0; i < longueur_titre; i++ ) {
    if( reg.exec( titre[i] ) )  {
      nb_maj++;
    }
  }
  longueur_titre /= 2;
  if( nb_maj > longueur_titre ) charte_titre = 'Votre titre semble contenir beaucoup de majuscule.';

  // affichage des erreurs
  if( charte_titre != '' ) {
  	resultat = ! confirm("Votre titre ne semble pas correcte pour la raison suivante :\n\n\"" + charte_titre + "\"\n\nSi vous validez ce titre, vous risquez de voir votre message supprimé.\nVoulez-vous modifier votre titre (OK) ou poster quand même (Annuler) ?" );
	if( resultat ) return confirm("Vous êtes VRAIMENT sûr de vouloir poster ??\n(OK) pour VRAIMENT poster ou (Annuler) car vous êtes pris de remords");
    return false;
  } 

  //////////////////////////////////////////////////////////////////////////////////////
  // Analyse du message
  var charte_message = '';
  message = form.contenu.value;

  // Politesse : On dit "bonjour"	
  reg = /^\s*(bonjour|salut|yo|lu|hello|u|bonjoir|bonsoir|saluton|slt|yop|bonjours|lut|hip|bjr|re|guten)/i;
  if( ! reg.test( message ) ) charte_message = '[Politesse] Vous ne semblez pas dire "Bonjour" (ou nous ne connaissons pas encore cette forme de salut).';

  // pas de SMS
  reg = /([,.?!\s:("']|^)(pkoi|toa|ki|kan|ke|k1|mé|mè|cé|dé|keski|kesski|koa|pourkoi|essque)([,.?!\s:)"']|$)/i;
  if( reg.test( message ) ) charte_message = '[Politesse] Vous semblez utiliser du langage SMS et ceci n\'est pas très apprécié sur ce forum.';

  // affichage des erreurs
  if( charte_message != '' ) {
    resultat = ! confirm("Votre message ne semble pas respecter la charte pour la raison suivante :\n\n\"" + charte_message + "\"\n\nSi vous validez ce message, vous risquez de le voir supprimé.\nVoulez-vous le modifier (OK) ou le poster quand même (Annuler) ?" );
	if( resultat ) return confirm("Vous êtes VRAIMENT sûr de vouloir poster ??\n(OK) pour VRAIMENT poster ou (Annuler) car vous êtes pris de remords");
    return false;
  } 

  //////////////////////////////////////////////////////////////////////////////////////
  // Militantisme
  reg = /([,.?!\s:(=_)-]|^)lol([,.?!\s:=_)-]|$)/i;
  if( ! reg.test(document.cookie) && reg.test( message ) ) {
    alert('[Militantisme]\n\nSavez-vous que la traduction exacte de "LOL" en français est "MDR" ?\n\nZ\'inquitez pas, je ne vous le rappelerai pas à chaque fois ;-)' );
    var today = new Date();
    var expire = new Date();
    expire.setTime(today.getTime() + 31536000); // on ne le rappele plus pendant 1 an
    document.cookie = 'lol=1;expires='+expire.toGMTString();
  }
  
  return true;
}
