/* AUTEUR: anis */
/* DATE DE CREATION: 26/04/2005 */
// Debut script

var JJ;var MM;var AAAA;      
isMatch = false;
var monForm;
var affichage;
var tous;
var tabErreur = new Array();
var tabChamps = new Array();
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

////////////parametrages/////////////////////////////////////////
function nomFormulaire(nom){
  monForm = nom;
}
function affichage_erreur(type, nb){
  affichage = type;
  if(nb=="tous")
    tous = "oui";
  else
    tous = "non";
}

///////////////tester le formulaire///////////////////////////////
function soumettre(){
  if(tabErreur.length==0) return 1;
  message1="";message2 = "";
  i=0;
  if(tous=="oui")
    for(i=0; i<tabErreur.length; i++){
      message1 = message1+"<br>"+tabErreur[i];
	  message2 = message2+"\n"+tabErreur[i];
	  monForm.elements[tabChamps[i]].className="classErreur";
    }
  else{
    message1 = tabErreur[0];
	message2 = tabErreur[0];
	monForm.elements[tabChamps[0]].className="classErreur";
  }
  if(affichage=="page") affich_message(message1);
  else {
	alert(message2);
  }
  tabErreur.length =0;
  tabChamps.length =0;
  return 0;
}

//////////////Detection des erreurs///////////////////////////////////////////////
function c_obligatoire(ch, label, parDefaut){
  if(monForm.elements[ch].value == "" || monForm.elements[ch].value == parDefaut){
	  tabErreur[tabErreur.length] =  "le champ "+label+" est obligatoire";
	  tabChamps[tabChamps.length] = ch; 
	  return false;
  }
  monForm.elements[ch].className="";
  return true;
}

function c_date(ch, d_format, label){
  if(!Control_Date(monForm.elements[ch].value, d_format)){
     tabErreur[tabErreur.length] =  "le champ "+label+" doit etre une date au format "+d_format;
     tabChamps[tabChamps.length] = ch; 
     return false;
  }
  monForm.elements[ch].className="";
  return true;
}

function c_nombre(ch, label){
  if(isNaN(monForm.elements[ch].value)){
     tabErreur[tabErreur.length] =  "le champ "+label+" doit etre un nombre";
     tabChamps[tabChamps.length] = ch; 
     return false;
  }
  monForm.elements[ch].className="";  
  return true;
}

function c_mail(ch, label){
  if(!mail_valid(monForm.elements[ch].value)){
     tabErreur[tabErreur.length] =  "le champ "+label+" doit être un mail valid";
     tabChamps[tabChamps.length] = ch; 
     return false;
  }
  monForm.elements[ch].className="";  
  return true;
}
function c_url(ch, label){
  if(!url(monForm.elements[ch].value)){
     tabErreur[tabErreur.length] =  "le champ "+label+" doit être une url valid";
     tabChamps[tabChamps.length] = ch; 
     return false;
  }
  monForm.elements[ch].className="";  
  return true;
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////TRAITMENTS//////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

////////////compteur de caractere//////////////////////////
function compter(target, max){ 
  strlen = target.value.length 
  if (strlen >= (max)){
    target.value = target.value.substring(0,max); 
    charsleft = max;
  }
  else{ 
    charsleft = strlen; 
  }
}
///////////////////////////////////////////////////////////
function mail_valid(valeur){
if(valeur=="") return true;
if ((valeur.indexOf("@")>=0)&&(valeur.indexOf(".")>=0)) {
   return true; 
} else {
   return false;
}
}

function url(ch){
  if(ch.substr(0,7) == "http://") return true
  else return false;

}


//Fonction utilitaires
function entier(val){
isNaN(val)
}
function affich_message(message){
  if(ns4) document.over.document.write(message);
  if(ie4) document.all["over"].innerHTML = message;
}


/////-*-////-*-//////-*-/////-*-////-*-////-*-////-*-////-*-//////-*-/////-*-////-*-////-*-/////
function Control_Date (MaDate, d_format) //controle la date renvoi true si la date est valide false sinon
{
  var strTemporaire = MaDate;
  
  if (strTemporaire == '')
    return true;
    //strTemporaire = formatDate(strTemporaire);
	strTemporaire = verif_format_date(strTemporaire, d_format);
  if (strTemporaire == null) 
    return false;

  return true;
}
/////////verif////////
function verif_format_date(valeur, d_format){
  AAAA="";JJ="";MM="";
  var tabDate    
  // L'ordre de lecture des expressions est important
  var expReg1 =  /(\d{2})(\d{2})(\d{4}|\d{2})/;
  var expReg2 =  /(\d{2}|\d)\/(\d{2}|\d)\/(\d{4}|\d{2})/;
  var expReg3 =  /(\d{2}|\d)\-(\d{2}|\d)\-(\d{4}|\d{2})/;
  var expReg4 =  /(\d{4}|\d{2})\-(\d{2}|\d)\-(\d{2}|\d)/;
  if(d_format=="JJMMAAAA") result = Date_JJMMAAAA(expReg1, valeur);
  if(d_format=="JJMMAA") result = Date_JJMMAA(expReg1, valeur);
  if(d_format=="JJ/MM/AA") result = Date_JJ_MM_AA(expReg2, valeur);
  if(d_format=="JJ/MM/AAAA") result = Date_JJ_MM_AAAA(expReg2, valeur);
  if(d_format=="JJ-MM-AA") result = Date_JJ_MM_AA(expReg3, valeur);
  if(d_format=="JJ-MM-AAAA") result = Date_JJ_MM_AAAA(expReg3, valeur);
  if(d_format=="AAAA-MM-JJ") result = Date_AAAA_MM_JJ(expReg4, valeur);
  if(result!=false)
  return valider_date(AAAA, MM, JJ, isMatch);
}
//////////////Format de DATE/////////////////////////////////////////////////
function Date_JJMMAAAA(expReg1, valeur){ ///format date JJMMAAAA
 tabDate = valeur.match(expReg1);    
  if  ((tabDate != null) && (tabDate[0] == valeur))
  {          
    isMatch = true;
    JJ  = tabDate[1];
    MM  = tabDate[2]; 
    if (tabDate[3].length == 4 ) AAAA = tabDate[3];
	else return false;
  } 
}

function Date_JJMMAA(expReg1, valeur){ ///format date JJMMAA
 tabDate = valeur.match(expReg1);    
  if  ((tabDate != null) && (tabDate[0] == valeur))
  {        
    isMatch = true;
    JJ  = tabDate[1];
    MM  = tabDate[2]; 
    if (tabDate[3].length == 2 ) AAAA = '20' + tabDate[3];
	else return false;
  } 
}

function Date_JJ_MM_AA(expReg2, valeur){
  tabDate = valeur.match(expReg2);
  if  ((tabDate != null) && (tabDate[0] == valeur))  
  {   
      isMatch = true;
      if (tabDate[1].length == 1 ) JJ  = '0' + tabDate[1];
      else JJ  = tabDate[1];
      if (tabDate[2].length == 1 ) MM  = '0' + tabDate[2]; 
      else MM  = tabDate[2]; 
      if (tabDate[3].length == 2 ) AAAA = '20' + tabDate[3] ;
      else return false; 
    }
}
function Date_JJ_MM_AAAA(expReg2, valeur){
  tabDate = valeur.match(expReg2);
  if  ((tabDate != null) && (tabDate[0] == valeur))  
  {   
      isMatch = true;
      if (tabDate[1].length == 1 ) JJ  = '0' + tabDate[1];
      else JJ  = tabDate[1];
      if (tabDate[2].length == 1 ) MM  = '0' + tabDate[2]; 
      else MM  = tabDate[2]; 
      if (tabDate[3].length == 4 ) AAAA = tabDate[3] ;
      else return false; 
    }
}
function Date_AAAA_MM_JJ(expReg2, valeur){
  tabDate = valeur.match(expReg2);
  if  ((tabDate != null) && (tabDate[0] == valeur))  
  {   
      isMatch = true;
      if (tabDate[3].length == 1 ) JJ  = '0' + tabDate[3];
      else JJ  = tabDate[3];
      if (tabDate[2].length == 1 ) MM  = '0' + tabDate[2]; 
      else MM  = tabDate[2]; 
      if (tabDate[1].length == 4 ) AAAA = tabDate[1] ;
      else return false; 
    }
}
////valider
function valider_date(){
  if(isNaN(AAAA) || isNaN(MM) || isNaN(JJ)) return null;
  var objDate=new Date(AAAA, (MM - 1) ,JJ);
    if ((JJ=='32') && (MM='13') && isMatch) {
      //return JJ + '/' + MM + '/' + AAAA;
      return objDate;
    }
      
    if ( (!isMatch) || (objDate.getDate() != JJ) || ((objDate.getMonth()+1) != MM )) {       
      return null;
    }    
    //return JJ + '/' + MM + '/' + AAAA;
    return objDate;
}

///////////tous les format////////////
function formatDate(valeur) //format de date (tous les format)
{
  var JJ;var MM;var AAAA;      
  isMatch = false;
  var tabDate    
  // L'ordre de lecture des expressions est important
  var expReg1 =  /(\d{2})(\d{2})(\d{4}|\d{2})/;
  var expReg2 =  /(\d{2}|\d)\/(\d{2}|\d)\/(\d{4}|\d{2})/;
  // tabDate={JJMMAAAA ou JJMMAA}
  tabDate = valeur.match(expReg1);    
  if  ((tabDate != null) && (tabDate[0] == valeur))
  {          
    isMatch = true;
    JJ  = tabDate[1];
    MM  = tabDate[2]; 
    if (tabDate[3].length == 2 ) AAAA = '20' + tabDate[3] ;
    else AAAA = tabDate[3];
  } 
  // tabDate={JJ/MM/AAAA ou JJ/MM/AA}
  tabDate = valeur.match(expReg2);
  if  ((tabDate != null) && (tabDate[0] == valeur))  
  {   
      isMatch = true;
      if (tabDate[1].length == 1 ) JJ  = '0' + tabDate[1];
      else JJ  = tabDate[1];
      if (tabDate[2].length == 1 ) MM  = '0' + tabDate[2]; 
      else MM  = tabDate[2]; 
      if (tabDate[3].length == 2 ) AAAA = '20' + tabDate[3] ;
      else AAAA = tabDate[3]; 
    }
    
    var objDate=new Date(AAAA, (MM - 1) ,JJ);

    if ((JJ=='32') && (MM='13') && isMatch) {
      //return JJ + '/' + MM + '/' + AAAA;
      return objDate;
    }
      
    if ( (!isMatch) || (objDate.getDate() != JJ) || ((objDate.getMonth()+1) != MM )) {       
      return null;
    }    
    //return JJ + '/' + MM + '/' + AAAA;
    return objDate;
  }

////cacher/////////
function clicMenu(id, aff) { 
  isIE = (document.all) 
  isNN6 = (!isIE) && (document.getElementById)

  if (isIE) me = document.all[id];
  if (isNN6) me = document.getElementById(id);
//  alert (me.style.display);
  //if (me.style.display == "none"){
  if(aff=="oui"){
    me.style.display = ""
  } else {
    me.style.display = "none"
   }
}  

/////-*-////-*-//////-*-/////-*-////-*-////-*-////-*-////-*-//////-*-/////-*-////-*-////-*-/////

//  Fin script -->



