window.addEvent('domready', function() {
	majFormValidation();
});
	
	
// pour le traitement des erreurs du formulaire
var divError = new Element('div', {'styles':{'color':'#ff0000','display':'block'}});
divError.set('html','&nbsp;&nbsp;Ce champ est obligatoire !');


// test si l'objet passé en paramètre a une valeur nulle (return false) ou non-nulle (return true)
function testEmptyFormValidation(obj){
  if (obj.value.trim() == ''){
    if (!$(obj).getNext('div')){
      $(obj).setStyle('backgroundColor','#ffbaba');
      $(obj).setStyle('borderWidth','1px');
      divError.clone().inject($(obj),'after');
    }
    return false; 
  }
  else{
    if ($(obj).getNext('div')){
      $(obj).setStyle('backgroundColor','#ffffff');
      $(obj).setStyle('borderWidth','1px');
      $(obj).getNext('div').dispose();
    }
    return true;
  }
}

// test si tous les champs obligatoires du formulaire passé en paramètre ont été remplis 
function testFormValidation(item){
  var result = true;
  item.getElements('input').each(function(item2, index2){
    if (item2.hasClass('checkForm')){
      if (!testEmptyFormValidation(item2))
        result = false;
    }
  });
  return result;
}


function majFormValidation(){  
  // ajoute 'l'événement "onSubmit" sur tous les formulaire possédant la classe "checkForm"
  $$('form.checkForm').each(function(item, index){
    item.addEvent('submit', function() {  
  		// test si tous les champs obligatoires ont été remplis
  		if (!testFormValidation(this)){
        return false;
      }
    });
    // ajoute l'événement "onBlur" sur tous les éléments "input" (du formulaire en cours) possédant la classe "checkForm" 
    item.getElements('input').each(function(item2, index2){
      if (item2.hasClass('checkForm')){
        item2.addEvent('blur', function(){
          // test si le champ a été rempli
          testEmptyFormValidation(this);
        });
      }
    });
  });
}