function addEvent(e, evType, fn) {
  if(e.addEventListener) {
    e.addEventListener(evType, fn, false); // sans capture
    return true;
  } else if (e.attachEvent) {
    var r = e.attachEvent("on"+evType, fn);
    return r;
  } else { return false; }
}

addEvent(window, 'load', initialisation);

function initialisation(event) {
  addEvent(document.getElementById('f1'), 'submit', validation);
}

function estVide(id, n) {
  var e = document.getElementById(id);
  var type = e.type ? e.type.toLowerCase() : (e.length ? e[0].type.toLowerCase() : '' );
  if(type=='select') {
    var v = e.options[e.selectedIndex].value;
    if(v.length!=0) return false;
  }
  else if(type=='radio') {
    var form = e.parentNode;
    while(form.tagName.toLowerCase()!='form') form = form.parentNode;
    var inputs = form.getElementsByTagName('input');
    for(var i=0;i<inputs.length;i++) if(inputs[i].name==e.name && inputs[i].checked) return false;
  }
  else {
    var v = e.value;
    if(v.length!=0) return false;
  }
  alert("Le champ " + n + " est obligatoire");
  e.focus();
  return true;
}

function estEmail(id, n) {
  var e = document.getElementById(id);
  if( e.value.length==0) return false; // admet un email vide
  if( e.value.indexOf('@')<0 ) {
    alert("Le champ " + n + " doit contenir un email valide, par ex: malavida@rockstar.ch");
	e.focus();
	return true;
  }
  return false;
}

function testChamps() {
  if( estVide('f1_nom', 'Nom') ) return true;//Id et le texte qui apparaitra dans le champ d'erreur
  if( estVide('f1_prenom', 'Prénom') ) return true;
  // marche pas if( estVide('f1_couleur_1', 'Couleur') ) return true;
  if( estVide('f1_email', 'Email') ) return true;
  if( estEmail('f1_email', 'Email') ) return true;
  return false;
}

function validation(event) {
  if( testChamps() ) {
	  var event = event || window.event;
	  if (event.preventDefault) { // Standard
		event.preventDefault();
	  } else { // Pour IE
		event.returnValue = false;
	  }
  }
}
