// JavaScript Document
function envoimail(pNum){
	//recupération des champs correspondants à la zone
	var formEnCours = document.getElementById('form'+pNum);
	var listeProv = formEnCours.getElementsByTagName("*");
	var listeChamps = new Array();
	var listeTypes = new Array();
	var listeLabels = new Array();
	var destinataire = "";//destiantaire de l'email
	var copie = false;//autorisation de copie au rédacteur du mail
	var destinataireCopie = "";//adresse du rédacteur du mail
	for (var i=0;i<listeProv.length;i++){
		if((listeProv[i].tagName == "INPUT" || listeProv[i].tagName == "SELECT" || listeProv[i].tagName == "TEXTAREA") && listeProv[i].getAttribute("type") != "button" && listeProv[i].getAttribute("type") != "hidden"){
			listeChamps.push(listeProv[i]);
			listeLabels.push(listeProv[i].previousSibling);
			if(listeProv[i].tagName == "INPUT"){
				if(listeProv[i].getAttribute("type") == "text"){
					if(listeProv[i].getAttribute("class") == "calendrier"){
						listeTypes.push("date");
					}else{
						listeTypes.push("text");
					}
				}else{
					listeTypes.push(listeProv[i].getAttribute("type"));
				}
			}else if(listeProv[i].tagName == "TEXTAREA"){
				listeTypes.push("textarea");
			}else if(listeProv[i].tagName == "SELECT"){
				//aucun select ajoutable pour l'instant
			}
		}
		if(listeProv[i].id == "destinataire" + pNum){
			destinataire = listeProv[i].value;
		}
		if(listeProv[i].id == "copie" + pNum){
			copie = Boolean(listeProv[i].value);
		}
		if(listeProv[i].getAttribute("type") == "email"){
			destinataireCopie = listeProv[i].value;
		}
	}
	//vérifivation de la validité des champs (à faire)
	var formValid = true;//mis à vrai par défaut. changé à faux si une des conditions ci-dessous est fausse
	for(var i=0;i<listeChamps.length;i++){
		//suppression des encadrés rouges afichés en cas d'erreur
		if(navigator.appName != "Microsoft Internet Explorer"){
			listeChamps[i].style.boxShadow= "none";
		}else{
			listeLabels[i].setAttribute("style","");
		}
		
		var reg;
		var message;
		var fonction = "";
		switch(listeTypes[i]){
			case "text":
				reg = /[^a-z '\.,?!A-Z0-9_àÀáâÂãäÄå@$€£çÇèÈéÉêÊëËìÌíîÎïÏðòÒóôÔõöÖùÙúûÛüÜýÿŸœ-]/;
				message = "Merci de n'utiliser que des caractères valides.";
				break;
			case  "email":
				reg = /^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$/;
				message = "Merci d\'entrer un email valide.";
				fonction = "formatage";
				break;
			case "date":
				reg = /^(\d{1,2}\/){2}\d{4}$/;
				message = "Merci d\'entrer une date au format jj/mm/aaaa.";
				fonction = "formatage";
				break;
			case "number":
				reg = /[^0-9]/;
				message = "Merci de n\'entrer que des chiffres.";
				break;
			case "tel":
				reg = /^0[1-9]([-. ]?[0-9]{2}){4}$/;
				message = "Merci d\'entrer un numéro de téléphone valide.";
				fonction = "formatage";
				break;
			case "textarea":
				reg = /[^a-z '\.,?!A-Z0-9_àÀáâÂãäÄå@$€£çÇèÈéÉêÊëËìÌíîÎïÏðòÒóôÔõöÖùÙúûÛüÜýÿŸœ-]/;
				message = "Merci de n'utiliser que des caractères valides.";
				break;
			case "url":
				reg = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
				message = "Merci de n\'utiliser que des caractères valides.";
				fonction = "formatage";
				break;
		}
		if(fonction == "formatage"){
			if (reg.test(listeChamps[i].value) == false) {
				formValid = false;
				if(navigator.appName != "Microsoft Internet Explorer"){
					listeChamps[i].style.boxShadow= "0 0 2px 2px #FF0000";
				}else{
					listeLabels[i].style.color = "#F00";
				}
				alert(message);
				break;
			}
		}else{
			if (reg.test(listeChamps[i].value) == true) {
				formValid = false;
				if(navigator.appName != "Microsoft Internet Explorer"){
					listeChamps[i].style.boxShadow= "0 0 2px 2px #FF0000";
				}else{
					listeChamps[i].style.color = "#F00";
				}
				alert(message);
				break;
			}
		}
		//vérification d'un champ obligatoire
		if(listeChamps[i].getAttribute("obligatoire") == "obligatoire" && listeChamps[i].value == ""){
			formValid = false;
			if(navigator.appName != "Microsoft Internet Explorer"){
				listeChamps[i].style.boxShadow= "0 0 2px 2px #FF0000";
			}else{
				listeChamps[i].style.color = "#F00";
			}
			alert("Merci de renseigner les champs obligatoires");
			break;
		}
	}
	//--------------------------------------
	if(formValid == true){
		var parametres = "";
		for(var i=0;i<listeChamps.length;i++){
			if(i==0){
				parametres = listeLabels[i].textContent + "|" + listeChamps[i].value;
			}else{
				parametres += "|" + listeLabels[i].textContent + "|" + listeChamps[i].value;
			}
		}
		
		var xhr_object = null;
		if(window.XMLHttpRequest){ // Firefox
			 xhr_object = new XMLHttpRequest();
		}else if(window.ActiveXObject){ // Internet Explorer
			 xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		}else { // XMLHttpRequest non supporté par le navigateur
			 alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
			 return;
		}
		xhr_object.onreadystatechange = function(){
			if ( xhr_object.readyState == 4 ){
				var donnees = xhr_object.responseXML;
				var reponse = donnees.getElementsByTagName('reponse')[0].firstChild.nodeValue;
				if(reponse != 1){
					alert(reponse);
				}else{
					confirmeEnvoi(listeChamps,listeLabels,pNum);
				}
			}
		}
		var data = "&param=" + encodeURIComponent(parametres) + "&destinataire=" + destinataire;
		if(copie == true && destinataireCopie != ""){
			data += "&destinataireCopie=" + destinataireCopie;
		}
		xhr_object.open("POST", "php/envoimail.php", true);
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.setRequestHeader("Accept-Charset", "UTF-8");
		xhr_object.send(data);
	}
}

function confirmeEnvoi(pListeChamps,pListeLabels,pNum){
	document.getElementById('form'+pNum).parentNode.innerHTML = "<table style=\"width:100%;height:100%;\"><tr><td style=\"text-align:center;vertical-align:middle;\">Votre formulaire a été correctement envoyé.</td></tr></table>";
	for(var i=0;i<pListeChamps.length;i++){
		if(pListeChamps[i].tagName == "INPUT"){
			pListeChamps[i].value = ""
		}else  if(pListeChamps[i].tagName == "TEXTAREA"){
			pListeChamps[i].value = ""
		}else  if(pListeChamps[i].tagName == "SELECT"){
			pListeChamps[i].selectedIndex = 0;
		}
	}
}
