/*******************************************************************************************************************************

VARIABLES GLOBALES

********************************************************************************************************************************/

var valide;
var nom;
var prenom;
var ville;
var mail;
var tel;
var signature;
var newsletter;

var erreur;

/********************************************************************************************************************************

FONCTION D'ENTREE  A LA VALIDATION DU DOCUMENT

********************************************************************************************************************************/

function validation()
{
	
	cacheErreur();
	
	valide = parseVariable();
	
	if(valide)
	{
		envoieFormulaire();
	}
	
}


/********************************************************************************************************************************

FONCTION INTERNES

********************************************************************************************************************************/

//FONCTION DE TEST DES CHAMPS DE SAISIE//

function verifNomPrenom(s)
{

	if(s.length < 2 || s == "")
	{
		
		return false;
		
	}else{
		
		return true;	
		
	}
	
}

function verifMail(s) 
{
	
	var new_string = new String(s);
	
	if (!new_string.match('^[-_\.0-9a-zA-Z]{1,}@[-_\.0-9a-zA-Z]{1,}[\.][0-9a-zA-Z]{2,}$')) 
	{
		
			return false;
			
	}else {
		
			return true;
	}
	
}

function testCase(obj)
{
	
	if(obj.checked)
	{
		
		return 1;
		
	}else{
	
		return 0;
		
	}
	
}

//FONCTION DE GESTION DES MESSAGES D'ERREUR//

function cacheErreur()
{
	
	erreur = document.getElementById("form_erreur");
	erreurText = erreur.getElementsByTagName("p");
	erreurText.innerHTML = "";
	erreur.style.display = "none";
	
}

function messageErreur(s)
{
	
	erreur = document.getElementById("form_erreur");
	erreurText = document.getElementById("erreur_texte");
	erreurText.innerHTML = s;
	erreur.style.display = "block";
	
}

//FONCTION QUI PERMET DE VIDER LES CHAMPS DE SAISIES ET DECOCHER LES CASES SELECTIONNEES//

function videTexte()
{
	
	var nom = document.getElementById("nom");
	nom.value = "";
	var prenom = document.getElementById("prenom");
	prenom.value = "";
	var ville = document.getElementById("ville");
	ville.value = "";
	var mail = document.getElementById("mail");
	mail.value = "";
	var tel = document.getElementById("tel");
	tel.value = "";
	
}

function decocheCase()
{
	
	document.getElementById("signature").checked = false;
	document.getElementById("newsletter").checked = false;
	
}


//PARSAGE DES VARIABLES DU FORMULAIRE//

function parseVariable()
{
	
	nom = document.getElementById("nom").value;
	prenom = document.getElementById("prenom").value;
	ville = document.getElementById("ville").value;
	mail = document.getElementById("mail").value;
	tel = document.getElementById("tel").value;
	
	signature = testCase(document.getElementById("signature"));
	newsletter = testCase(document.getElementById("newsletter"));
	
	var verif_nom = verifNomPrenom(nom);
	var verif_prenom = verifNomPrenom(prenom);
	var verif_mail = verifMail(mail);
	
	if(verif_nom == false)
	{
		
		messageErreur("veuillez remplir le champs nom correctement");
		return false;
		
	}else if(verif_prenom == false)
	{
		
		messageErreur("veuillez remplir le champs pr&eacute;nom correctement");
		return false;
		
	}else if(verif_mail == false)
	{
		messageErreur("veuillez remplir le champs courriel correctement");
		return false;
		
	}else if(signature == 0 || signature == "undefined")
	{
		
		messageErreur("veuillez cocher la case : Je signe l'appel l'Essonne, j'y tiens !");
		return false;
		
	}else{
	
		videTexte();
		decocheCase();
		return true;
		
	}
	
}


/************************************************************************************************************************

FUNCTION DE DETECTION DE L'OBJET XMLHTTPREQUEST SOUS SES DIFFERENTES FORMES :  XMLHTTPREQUEST OU ACTIVEXOBJECT

---> optimisation pour l'objet ActiveXObject = détection de sa version.

---> la fonction retourne l'objet XMLHttpRequest ou ActiveXObject

************************************************************************************************************************/


function xhr_connect()
{
	
	var xhr = false;

	if(window.XMLHttpRequest)
	{
		
		xhr = new XMLHttpRequest;
		
	}else if(window.ActiveXObject)
	{
		
		var reussi = false;
		
		var iexhr = new Array("Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
		
		for(var i=0; i<iexhr.length && reussi == false; i++)
		{
		
			try
			{
				
				xhr = new ActiveXObject(iexhr[i]);
				
				reussi = true;
				
			}catch(e)
			{
				
				
			}
			
		}
		
	}
	
	return xhr;
	
}

/************************************************************************************************************************

FONCTION D'ENVOI DU FORMULAIRE

************************************************************************************************************************/


function envoieFormulaire()
{
	
	var retourOK = document.getElementById("retourOK");
	var retourKO = document.getElementById("retourKO");
	
	var objxhr = xhr_connect();
	
	if(objxhr)
	{
		objxhr.onreadystatechange = function()
		{
			
			//controle de l'etat de chargement des donnees//
			if(objxhr.readyState == 4)
			{
				
				//test les protocoles http//
				if(objxhr.status == 200)
				{
					
					//AFFICHER LE RETOUR PHP//
					var retour = objxhr.responseText;
					
					if(retour == "ok")
					{
					
						retourOK.style.display = "block";
						retourKO.style.display = "none";
						alert("enregistrement effectue");
						
					}else{
						
						retourOK.style.display = "none";
						retourKO.style.display = "block";
						alert(retour);
						
					}
					
				}else{
				
					var erreur = objxhr.status;
					
					retourOK.style.display = "none";
					retourKO.style.display = "block";
					alert(erreur);
					
				}
				
			}
			
		}
		
		//ENVOI EN POST//
		
		//creation de la variable à envoyer en POST au fichier php//
		var data = "nom="+nom+"&prenom="+prenom+"&ville="+ville+"&mail="+mail+"&tel="+tel+"&newsletter="+newsletter;
		
		//envoie des donnees depuis un fichier PHP distant//
		objxhr.open("POST", "php/traitement.php", true);
		
		//creation du header qui permet l'envoi//
		objxhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		//variable a envoyer aux fichiers distants (ici sql)//
		objxhr.send(data);
		
	}else{
	
		alert("Ajax ne peut être exécuté sur ce navigateur");
		
	}
	
}




