function verifMail(email){
  var maReg = new RegExp ( "^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]*\\w$", "gi" );
  if ( email.search( maReg ) == -1 )
    return false;
  else
    return true;
}

function showError(){
  parentP = this.getParent('td');  
  childSpan = parentP.getChildren('span.msgError');
  if(childSpan==''){
    msg =(this.hasClass('check'))?'Cochez une case':(this.hasClass('mail'))?'E-mail incorrect':(this.hasClass('text'))?'Champ obligatoire':'Champ obligatoire';
    ctnMsgS = new Element('span',{'class':'msgError'});
    ctnMsgS.inject(parentP);
    ctnMsg = new Element('strong');
    ctnMsg.set('html',msg);
    ctnMsg.inject(ctnMsgS);
    ctnMsgS.setStyle('opacity','0');
    ctnMsgS.fade('in');
  }  
}

function removeError(){
  spanError = this.getParent('p').getChildren('span.msgError');
  spanError.dispose();
}

function checkForm(){
  var error=0;
  var checkName=new Array();
  $('contact').getElements('.obl.text').each(function(item){
    if(item.get('value')=='')
    {
      item.addClass('error');var myBoundError=showError.bind($(item));myBoundError();error++;
    }
    else
    {
      if(item.get('id')=='mail' && !verifMail(item.get('value')))
      {
        item.addClass('error');var myBoundError=showError.bind($(item));myBoundError();error++;
      }
      else if(item.hasClass('error'))
      {
        item.removeClass('error');var myBoundRemoveError=removeError.bind($(item));myBoundRemoveError();
      }
    }
  });
  $('contact').getElements('select.obl').each(function(item){if(item.get('value')==''){item.addClass('error');var myBoundError=showError.bind(item);myBoundError();error++;}else{if(item.hasClass('error')){item.removeClass('error');var myBoundRemoveError=removeError.bind(item);myBoundRemoveError();}}});
  $('contact').getElements('.obl.check').each(function(item){
    newName = item.get('name').substring(0,item.get('name').length-2);
    if(!checkName.contains(newName))
    {
      checkName.include(newName);
      checkName[newName]=new Array(item.get('checked'));     
    }
    else
      checkName[newName].include(item.get('checked'));
  });
  checkName.each(function(item){
    if(checkName[item].contains(true))
    {
      var myBoundRemoveError=removeError.bind($('contact').getElement('input[name^='+item+']'));
      myBoundRemoveError();
    }       
    else
    {
      var myBoundError=showError.bind($('contact').getElement('input[name^='+item+']'));
      myBoundError();
      error++;
    }
  });
  if(error!=0)
    return false;
  else
    return true;
}

