//  Ce script défini la classe javascript champ_gsm 
//
// attributs : 
// - gsm
// - erreur
//
// méthodes : 
// - non_vide()
// - valide_06()
// - valide_france()
// - valide_international()

function champ_gsm(gsm){
// attributs
 this.gsm=gsm
 this.erreur = "";

// methodes
 this.non_vide = gsm_non_vide;
 this.valide_06 = valide_gsm_06;
 this.valide_france = valide_gsm_france;
 this.valide_international = valide_gsm_international;
}

function gsm_non_vide(){
//
// gsm obligatoire

 if(this.gsm == ""){
  this.erreur =  "Le numéro de gsm est obligatoire"; 
  return false;
 }
 return true;
}

function valide_gsm_06(){
//
// gsm obligatoire

 if(!this.non_vide()){
  return false;
 }


// format français en 06 : 06XXXXXXXX 
 if( !(/^0(6|7)[0-9]{8,8}$/.test(this.gsm))){
  this.erreur = "Le numéro de gsm \"" + this.gsm + "\" n'est pas valide\n(format : 06/07XXXXXXXX)";
  return false ;
 }
 return true;
}

function valide_gsm_france(){
//
// gsm obligatoire
 if(!this.non_vide()){
  return false;
 }

// format français : 06XXXXXXXX ou +336XXXXXXXX
 if( !(/^0(6|7)[0-9]{8,8}$/.test(this.gsm)) && !(/^\+33(6|7)[0-9]{8,8}$/.test(this.gsm))){
  this.erreur = "Le numéro de gsm \"" + this.gsm + "\" n'est pas valide\n(format : 06/07XXXXXXXX ou +336/7XXXXXXXX)";
  return false ;
 }

 return true;
}

function valide_gsm_international(){
//
// gsm obligatoire

 if(!this.non_vide()){
  return false;
 }

// format international
 if(!(/^\+[0-9]{1,15}$/.test(this.gsm)) ){
  this.erreur = "Le numéro de gsm \"" + this.gsm + "\" n'est pas valide\n(format : +XXXXXXXXXX)";
  return false;
 }
 return true;
}