// JavaScript Document

/* Ouverture et fermeture des offres d'emploi et de stage*/
function gereOffre(id){
  var tr="tr_"+id;
  var img="img_"+id;
  if(document.getElementById(tr)!=undefined && document.getElementById(img)!=undefined){
    if(document.getElementById(tr).style.display=="none"){ //le bloc est actuellement caché
      if(navigator.appName.substr(0,3)=="Mic")
        document.getElementById(tr).style.display="block";
      else
        document.getElementById(tr).style.display="table-row";
      document.getElementById(img).src="IMG/offre_asc.gif";
    }else{
      document.getElementById(tr).style.display="none";
      document.getElementById(img).src="IMG/offre_desc.gif";
    }
  }
}

/* Ouverture et fermeture des élèments du menu principal*/
function cache(calque)
{
  document.getElementById(calque).style.visibility='hidden';
}
function affich(calque)
{
  document.getElementById(calque).style.visibility='visible';
}

/* Validation de formulaire*/
function valideForm(nomForm){
  /*
    nomForm   : nom du formulaire
    nomC     : nom de champ
    typeD     : type de demande
      - nnc champ nécessaire
      - ve  email valide
      - nf  pas la première option
      - ch  checké obligatoirement
      - vd date valide
     mess     : message de d'erreur 
  */
  var form=document.getElementById(nomForm);
  if(form){
    var messErr="Les erreurs suivantes sont survenues :\n";
    var messE="";
    for(var i=1;i<arguments.length;i+=3){
      var nomC=arguments[i];
      if(form[nomC]){
        var typeC=form[nomC].type;
        var typeD=arguments[(i+1)];
        var mess=arguments[(i+2)];
        
        switch(typeD){
          case "nnc":{
            if((typeC=="text" || typeC=="textarea") && form[nomC].value=="")
              messE+="\t- "+mess+"\n";
          }break;
          case "ve":{
            if(typeC=="text"){
              var erreur=false;
              
              pos=form[nomC].value.indexOf("@")
              if(pos<2)
                erreur=true;
              
              pos2=form[nomC].value.lastIndexOf(".")
              if(pos2<5 || (pos2+2)>(form[nomC].value.length-1))
                erreur=true;
              
              if(erreur)
                messE+="\t- "+mess+"\n";
            }
          }break;
          case "nf":{
            if(typeC=="select-one" && form[nomC][0].selected)
              messE+="\t- "+mess+"\n";
          }break;
          case "vd":{
            var erreur=false;
            tab=form[nomC].value.split("/");
            //on regarde si le dernier élèment est l'année sur 4 chiffres
            if(tab[(tab.length-1)].length!=4)
              erreur=true;
            else{
              //on parcourt tous les élèments du tableau pour vérifier leur validité, dabord s'ils sont entier puis s'ils sont valide
              if((tab.length==2 && (isNaN(tab[0]) || isNaN(tab[1]))) || (tab.length==3 && (isNaN(tab[0]) || isNaN(tab[1]) || isNaN(tab[1]))))
                erreur=true
              else{
                lst30=new Array(4,6,9,11);
                switch(tab.length){
                  case 2:{  //format mm/aaaa
                    if(tab[0]>12)
                      erreur=true;
                  }break;
                  case 3:{  //format jj/mm/aaaa
                    //on regarde le nombre de jour dans le mois correspondant
                    if(tab[0]>31 || (tab[1]==2 && tab[0]>29))
                      erreur=true;
                    else{
                      //on parcourt le tableau des mois à 30 jours
                      for(var cpt =0; cpt<lst30.length; cpt++){
                        if(lst30[cpt]==tab[1] && tab[0]>30)
                          erreur=true;
                      }
                    }
                  }break;
                  default:{
                    erreur=true;
                  }break;
                }
              }
            }
            
            if(erreur)
                messE+="\t- "+mess+"\n";
          }break;
        }
      }
    }
    if(messE!=""){
      if(document.getElementById("wErr")){
        //c'est un message au format HTML donc on change les \n en <br>
        messErr=messErr.replace("\n","<br />");
        messErr="<h4>"+messErr+"</h4>";
        while(messE.search("\n")!=-1 || messE.search("\t")!=-1){
          messE=messE.replace("\t","&nbsp;&nbsp;&nbsp;");
          messE=messE.replace("\n","<br />");
        }
        wErreur(messErr+messE,"erreur",false);
      }else
        alert(messErr+messE);
    }else
      form.submit();
  }
}
