/****************************************************************************************************************************************
											  Fonctions générique pour vérifier les champs d'un formulaire
****************************************************************************************************************************************/
//couleurFAUX      = "#FFFFC6"     					 ; //---> La couleur d'un champ érronné
//couleurOK        = "#FFFFFF"     					 ; //---> La couleur d'un champ coorect	

couleurFAUX      = "#C8CED2"     					 ; //---> La couleur d'un champ erronné
couleurOK        = "#F7F7F7"     					 ; //---> La couleur d'un champ correct	

/***************************************************************************************************************************************
																Les caractères interdits à taper pour un champ texte
/***************************************************************************************************************************************/ 
function valid_texte(evt) 
{ 
	var interdit='';
	return InterditTouches(evt, interdit);
} //Fin valid_texte

/***************************************************************************************************************************************
																Les caractères interdits à taper pour un champ alphanumérique
/***************************************************************************************************************************************/ 
function valid_alphanumerique(evt)
{
	var interdit='€$$*+.&~#"{}()[]_^°=^%µ!§:;.,?|\\/`'; 
	return InterditTouches(evt, interdit);
} //Fin valid_texte

/***************************************************************************************************************************************
																Les caractères interdits à taper pour un champ email
/***************************************************************************************************************************************/ 
function valid_mail(evt) 
{ 
	var interdit='àâäãçéèêëìîïòôöõùûüñ &*?!:;,#~\'"^¨%$£?²§%*()[]{}<>\\|/`'; 
  return InterditTouches(evt, interdit); 
} //Fin valid_email

/***************************************************************************************************************************************
																Les caractères interdits à taper pour un entier non signé
/***************************************************************************************************************************************/ 
function valid_digit(evt) 
{ 
	var interdit  ='àâäãçéèêëìîïòôöõùûüñ ';
	    interdit +='._-+*/%°=µ€&?!:;,#~\'"^¨$£²§()[]{}<>\\|`';
			interdit +='²&é"\'(-è_çà)=*~#{[|`\\^@]}°+µ<>';
			interdit +='azertyuiop^$qsdfghjklmùwxcvbn,;:!AZERTYUIOP¨£QSDFGHJKLM%WXCVBN?./§¤';
  return InterditTouches(evt, interdit); 
} //Fin valid_email
/****************************************************************************************************************************************
																		Fonction pour interdire la frappe de certains caractères
																	 (Passer l'évènement et le string des caractères interdits) 
****************************************************************************************************************************************/ 
function InterditTouches(evt, sInterdit) 
{ 
	var keyCode = evt.which ? evt.which : evt.keyCode; 
	if (sInterdit.indexOf(String.fromCharCode(keyCode))>=0) return false;
} //Fin InterditTouches

/***************************************************************************************************************************************
		Fonction pour mettre en minuscule, Passer l'objet champs de formulaire
***************************************************************************************************************************************/ 
function minuscule(o)
{ 
  o.value=o.value.toLowerCase(); 
} //Fin minuscule

/****************************************************************************************************************************************
   Fonction pour valider le contenu d'un champ, Passer l'objet champs de formulaire
	 ---> Réinitialiser la couleur de l'arrière plan
****************************************************************************************************************************************/ 
function ChampOK(o) 
{ 
	o.style.backgroundColor = couleurOK;
} //Fin champOK

/****************************************************************************************************************************************
   Fonction pour valider le contenu d'un champ, Passer l'objet champs de formulaire
	 ---> Changer la couleur de l'arrière plan
	 ---> Mettre le focus
****************************************************************************************************************************************/
function ChampPasOK(o, msg)
{ 
  o.style.backgroundColor=couleurFAUX;
  alert(msg);
  o.focus();
  return false;
} //Fin ChampPasOK

/****************************************************************************************************
                                  Définir l'évènement onFocus d'un champ de texte
****************************************************************************************************/
function doFocus(input)
{
	if (input.value == input.defaultValue)
    input.value = '';
} //Fin doFocus
  
/****************************************************************************************************
                                  Définir l'évènement onBlur d'un champ de texte
****************************************************************************************************/
function doBlur(input)
{
  if (input.value == '')
    input.value = input.defaultValue;
} //Fin doBlur

/***************************************************************************************************************************************
													Vérifie la syntaxe générale d'un Email sous forme domaine en texte 
***************************************************************************************************************************************/ 
function bSyntaxeEmail(sMail) 
{ 
	sMail = sMail.toLowerCase();
	var re=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi; 
	return (sMail.match(re)==sMail)&&(sMail.substr(sMail.lastIndexOf("@")).length<=256); 
}  //Fin bsyntaxEmail

/****************************************************************************************************************************************
																				Vérifie que le Top Level Domain existe
	Passer le courriel en entier. Attention les, ".eu" sont notés ! La liste est à jour (jeudi 19 janvier 2006) et en avance pour les ".eu" 
****************************************************************************************************************************************/
function bDomainTLD(sMail) 
{ 
	sMail = sMail.toLowerCase();
	var re=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|aero|arpa|biz|com|coop|edu|eu|gov|info|int|mil|museum|name|net|org|pro|jobs|travel)$/gi;
	return sMail.substr(sMail.lastIndexOf(".") + 1).match(re)!=null;
} //Fin bDomainTLD

/****************************************************************************************************************************************
																				Vérifie que la syntaxe correpond à un entier non signé
****************************************************************************************************************************************/
function bInt(str, default_value)
{
	str += "";
	if (str == "") { return default_value; }
	var expr = new RegExp('^[0-9]+$','g');
	if (str.search(expr))       return  default_value;
	var i    = parseInt(str);
	if(isNaN(i))                return default_value;
	return i;
} //Fin bInt
  
/****************************************************************************************************************************************
																				Vérifie que la syntaxe correpond à un réel non signé
****************************************************************************************************************************************/
function bFloat(str, default_value)
{
  str += "";
	if (str == "")              return default_value;
	var expr = new RegExp('^[0-9]+(\.[0-9]+)?$','g');
		if (str.search(expr) == -1) return default_value;
	var i    = parseFloat(str);
	if(isNaN(i))                return default_value;
	return i;
} //Fin bFloat

