// JavaScript Document
var formulaire;
var nom;var nom_message;
var prenom;var prenom_message;
var port;var port_message;
var tel;var tel_message;
var email;var email_message;
var somme;var somme_message;
var formulaire;
var valider;

/* fonction de r�cup�ration de l'objet HTML */
function de(n) { return document.getElementById(n); }

/* fonction de r�cup�ration de l'ensemble des objets HTML du formulaire */
function cacheDom(){
  formulaire = de('formulaire');	
  email = de('email');
  email_message = de('email_message');
  
  nom = de('nom');
  nom_message = de('nom_message');
  prenom = de('prenom');
  prenom_message = de('prenom_message');
  
  tel = de('tel');
  tel_message = de('tel_message');
  
  port = de('port');
  port_message = de('port_message');
  somme = de('somme');
  somme_message = de('somme_message');
  valider = de('valider');
  formulaire = de('formulaire');}
  
function doActions() {
  email.onkeyup();
  nom.onkeyup();
  prenom.onkeyup();
  port.onkeyup();
  tel.onkeyup();
  somme.onkeyup();

  }
function init(){
  cacheDom();
email.onblur=checkMail;
  nom.onblur=checkNom;
  somme.onblur=checkSomme;
  prenom.onblur=checkPrenom;
  tel.onblur=checkTelephone;
 port.onblur=checkPort;
 formulaire.onSubmit=checkFormulaire;
 //valider.onload=checkFormulaire;
}
String.prototype.trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");
String.prototype.isEmpty = new Function("var x = this.trim(); if (x.length == 0) { return true; } else { return false; }");
//cree les message d'erreur ou de validite
function Message_Success(o, m) {
  o.innerHTML = '<span>' + (m == null ? '' : m) + '</span>';
  o.className = 'valide';
}
/* fonction de message d'erreur pour une v�rification */
function Message_Erreur(o, m) {
  o.innerHTML = '<span>' + (m == null ? '' : m) + '</span>';
  o.className = 'erreur';
}
/* fonction de message d'erreur pour une v�rification */
function Message_Neutre(o, m) {
  o.innerHTML = '<span>' + (m == null ? '' : m) + '</span>';
  o.className = '';
}
//*************verifie caract�res sp�ciaux***************
function checkName(champ) {
 												 var filtre = /^([a-zA-Z0-9_\.\-])+\s?$/;
  												if (filtre.test(champ)){ return true;}
  												else {return false;}
												}
//************verififie digits tel*************
function checkTel(champ) {
											var filtre = /^(01|02|03|04|05|06|08|09)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;
											if (filtre.test(champ)){return true;}
											else {return false;}
											}
function checkMob(champ) {
											var filtre = /^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;
											if (filtre.test(champ)){return true;}
											else {return false;}
											}
							
//************verififie digits code postal*************

//Verifie les champs vides (nom, prenom, ville
function checkNom(){
							    if (!nom.value.isEmpty()) {
      											Message_Success(nom_message,'');
												nom.className="champ";
	 											return true;
    											}else{
      											Message_Erreur(nom_message, 'Ce champ doit &ecirc;tre renseign&eacute !');
												nom.className="erreur";
												return false;
    											}
											}	
function checkPrenom(){
								 if (!prenom.value.isEmpty()) {
      											Message_Success(prenom_message,'');
												prenom.className="champ";
	 											return true;
    											}else{
      											Message_Erreur(prenom_message, 'Ce champ doit &ecirc;tre renseign&eacute !');
												prenom.className="erreur";
												return false;
    											}
											}
function checkMail(){
								if (!email.value.isEmpty()) {
																			if(email.value.length>50){
																													Message_Erreur(email_message, '50 caract&egrave;res maximum !');
																													email.className="erreur";
																													return false;
																													}
																			else if(resultat = file('valid_mail.php?email='+escape(email.value))){
																																																	if(resultat == 1){
																																																					Message_Erreur(email_message, 'Cette adresse e-mail n\'est pas valide !');
																																																					email.className="erreur";
																																																					return false;
																																																					}
																																																	else if(resultat == 2){
																																																						Message_Success(email_message,'');
																																																						email.className="champ";
																																																						return true;
																																																						}
																																																	else if(resultat == 3){
																																																					Message_Erreur(email_message, 'Le domaine n\'existe pas !');
																																																					email.className="erreur";
																																																					return false;
																																																					}
																																																	else if(resultat == 4){
																																																					Message_Erreur(email_message, 'Cette adresse e-mail d&eacute;j&agrave; utilis&eacute;e !');
																																																					email.className="erreur";
																																																					return false;
																																																					}			
																														
																																																			}
																		
																				}
								else {
										Message_Erreur(email_message, 'Ce champ doit &ecirc;tre renseign&eacute !');
										email.className="erreur";
										return false;
												}
								}
function checkTelephone(){
												 if (!tel.value.isEmpty()) {
																									if (!checkTel(tel.value)){
																																					Message_Erreur(tel_message, 'N&deg; de t&eacute;l&eacute;phone invalide !');
																																					tel.className="erreur";
																																					return false;
																																					}else{	
																																					Message_Success(tel_message,'');
																																					tel.className="champ";
																																					return true;}
																									 }

												else{	
												Message_Neutre(tel_message,'');
												tel.className="champ";
												return true;}
								}
function checkPort(){
												 if (!port.value.isEmpty()) {
																									if (!checkMob(port.value)){
																																					Message_Erreur(port_message, 'N&deg; de t&eacute;l&eacute;phone invalide !');
																																					port.className="erreur";
																																					return false;
																																					}else{	
																																					Message_Success(port_message,'');
																																					port.className="champ";
																																					return true;}
																									 }

												else{	
												Message_Neutre(port_message,'');
												port.className="champ";
												return true;}
								}
function checkSomme(){
						if ((!somme.value.isEmpty()) && (IsNumeric(somme.value)==false)) {
												Message_Erreur(somme_message, 'Ce n\'est pas un nombre ! ');
												somme.className="erreur";
												return false;
						}else if ((!somme.value.isEmpty()) && (IsNumeric(somme.value)==true)) {
												Message_Success(somme_message, 'Valide');
												somme.className="valide";
												return true;
												
						}else{
							Message_Neutre(somme_message, '');
												somme.className="";
												return true;
												}
}


function checkFormulaire(){
											
											doActions();
											if (checkMail()  && checkNom() && checkPrenom()  && checkTelephone() && checkSomme()  && checkPort() ){
													alert('ol !');
													return true;
													
												}else{
													alert('certains champs ne sont pas remplis !');
													return false;
													
													}
											
								}
	
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);}


