/*
Par défaut tous les champs sont vérifiés et se doivent d'être remplis.
Le champ contenant l'adresse email doit obligatoirement s'appeler name="email" pour obtenir la vérification avancée
Les champs précisés dans nameToIgnore ne sont pas vérifiés. (écrire les uns à la suite des autres et les séparer par des virgules ,)
Exemple : var nameToIgnore = "prenom,email,fax,telephone"; 
*/
function verifMultiForm(f,nameToIgnore,linkMultiForm,destinataire)
{
	var tabIgnoredName = nameToIgnore.split(",");
	var chaine = "";
	var bool = true;
	for (i=0 ; i<= f.elements.length-1 ; i++)
	{
		// On ignore les boutons de type reset et submit
		if(f.elements[i].type == 'reset' || f.elements[i].type == 'submit')
			continue;
		
		// On ne vérifie pas les champs spécifiés dans le second paramètre
		if(tabIgnoredName.indexOf(f.elements[i].name) != -1)
		{
			chaine += f.elements[i].name+"="+encodeURIComponent(f.elements[i].value)+"&";
			continue;
		}
		
		if(f.elements[i].type == 'radio')
		{
			if(f.elements[i].checked)
				chaine += f.elements[i].name+"="+encodeURIComponent(f.elements[i].value)+"&";
			continue;
		}
				
		if(f.elements[i].type == 'checkbox')
		{
			if(f.elements[i].checked)
				chaine += f.elements[i].name+"=oui&";
			else
				chaine += f.elements[i].name+"=non&";
			continue;
		}
		
		if(f.elements[i].name == 'email')
		{
			if(!verifMail(f.elements[i].value))
			{
				f.elements[i].style.border = '1px solid #FF0000';
				setErreur('<font color="red">Merci de saisir un email valide</font>');
				bool = false;
			}
			else
				f.elements[i].style.border = '1px solid #00FF00';
		}
		else
		{
			if(f.elements[i].value.length == 0)
			{
				f.elements[i].style.border = '1px solid #FF0000';
				setErreur('<font color="red">Merci de renseigner les champs signalés en rouge</font>');
				bool = false;
			}
			else
				f.elements[i].style.border = '1px solid #00FF00';
		}
		chaine += f.elements[i].name+"="+encodeURIComponent(f.elements[i].value)+"&";
	}
	if(bool)
	{
		chaine += "destinataire="+encodeURIComponent(destinataire);
		ajax(linkMultiForm+"php/sendMail.php",chaine,f); // Envoi du message
		for (i=0 ; i<= f.elements.length-1 ; i++)
			if(f.elements[i].type == 'reset' || f.elements[i].type == 'submit')
				f.elements[i].disabled = true;
	}
	return false;
}

function verifMail(email)
{
	var verif = /^[a-zA-Z0-9]+[a-zA-Z0-9._-]*@[a-zA-Z0-9]+[a-zA-Z0-9.-]*\.[a-zA-Z]{2,4}$/;
	if (verif.exec(email) == null)
		return false;
	else
		return true;
}

function resetMultiForm(f)
{
	if(confirm('Etes vous sur de vouloir annuler ?'))
	{
		for (i=0 ; i<= f.elements.length-1 ; i++)
			if(f.elements[i].type != 'reset' && f.elements[i].type != 'submit')
				f.elements[i].style.border = '1px solid #C0C0C0';
		setErreur('');
		return true;
	}
	else 
		return false;
}

function setErreur(string)
{
	if(document.getElementById('erreur'))
	{
		document.getElementById('erreur').innerHTML = string;
		if(string == '')
			document.getElementById('erreur').style.display = 'none';
		else
			document.getElementById('erreur').style.display = 'block';
	}
}

var myGlobalHandlers = {
	onCreate: function()
		{
			setErreur('<div class="multiLoad"></div>');
			if(document.getElementById('erreur'))
				Element.show('erreur');
		},
	onComplete: function()
		{
			if(Ajax.activeRequestCount == 0)
				if(document.getElementById('erreur'))
					Element.hide('erreur');
		}
};

function ajax(fichier,parametres,f)
{
	Ajax.Responders.register(myGlobalHandlers);
	new Ajax.Request(fichier, {
		method: 'post',
		asynchronous: 'true',
		parameters : parametres,
		onComplete: function(x)
		{
			affText = x.responseText.substr(1,x.responseText.length);
			if(x.responseText.charAt(0) == "@")
				f.innerHTML = affText;
			else
			{
				alert(affText);
				for (i=0 ; i<= f.elements.length-1 ; i++)
					if(f.elements[i].type == 'reset' || f.elements[i].type == 'submit')
						f.elements[i].disabled = false;
			}
		}
	});
}