//addevent
function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	}
	else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	}
	else { 
		//alert("Handler could not be added");
		return false; 
	} 
}
function removeEvent(obj, evType, fn){
	if (obj.removeEventListener){
		obj.removeEventListener(evType, fn, false);
		return true;
	}
	else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	}
	else {
		//alert("Handler could not be removed");
		return false; 
	}
}

/*** FONCTIONS LIEES AUX FORMULAIRES ***/
function clearInput(id,value)
	{
	var test = document.getElementById(id).value;
	if(test == value)
		{
		document.getElementById(id).value = "";
		}
	}
function modifyMDP(id,box)
	{
	
	document.getElementById(box).innerHTML = '<input type="password" id="'+id+'" name="'+id+'" value="" />';
	document.getElementById(id).focus();
	}
function controlEmail(idChamp) 
	{
	var arrEmail = document.getElementById(idChamp).value.split("@");
	if(arrEmail.length != 2) return false;
	else
		{
		var part1 = arrEmail[0];
		var arrPart2 = arrEmail[1].split(".");
		if(arrPart2.length != 2) return false;
		else
			{
			var part2 = arrPart2[0];
			var part3 = arrPart2[1];
			if(part1=="" || part2 == "" || part3 == "" || part3.length > 3 || part3.length < 2) return false;
			else return true;
			}
		}
	}
//fonction générique de controle de formulaire
function validForm(idForm)
	{
	//récupération de la liste des champs à vérifier
	var champOblig = document.getElementById("elementsObligatoires").innerHTML;
	var listeChampOblig = champOblig.split(";");
	var controleDouble = document.getElementById("controleDouble").innerHTML
	var listeControleDouble = controleDouble.split(";");
	var controlFormat = document.getElementById("controlFormat").innerHTML
	var listeControlFormat = controlFormat.split(";");
	if(document.getElementById("controlAcceptation")) var listeControleAcceptation = document.getElementById("controlAcceptation").innerHTML;
	else listeControleAcceptation = "";
	
	var nbElements = 0;
	var message = "";
	var idElement = "";var idElement1 = "";var idElement2 = "";
	var nomElement = "";var format = "";
	var coupleIdNom = ""; var coupleChamps = ""; 
	var validMail = false;
	
	//vérification des champs obligatoires
	if(champOblig != "")
		{
		nbElements = listeChampOblig.length;
		for(i=0;i<nbElements;i++)
			{
			if(listeChampOblig[i]=="") 
				 {
				 alert("Erreur liste elements obligatoires (position : "+i+")");
				 break;
				 }
			coupleIdNom = listeChampOblig[i].split("/");
			idElement = coupleIdNom[0];
			nomElement = coupleIdNom[1];
			if(document.getElementById(idElement).value == "")
				{
				message = message+"\n - "+nomElement+" obligatoire";
				}
			}
		}
	
	//vérification des doublons
	if(controleDouble != "")
		{
		nbElements = listeControleDouble.length;
		for(i=0;i<nbElements;i++)
			{
			coupleIdNom = listeControleDouble[i].split("/");
			coupleChamps = coupleIdNom[0].split(",");
			idElement1 = coupleChamps[0];
			idElement2 = coupleChamps[1];
			nomElement = coupleIdNom[1];
			if(document.getElementById(idElement1).value != document.getElementById(idElement2).value)
				{
				message = message+"\n - Les "+nomElement+" ne correspondent pas";
				}
			}
		}
	
	//vérification des formats
	if(controlFormat != "")
		{
		nbElements = listeControlFormat.length;
		for(i=0;i<nbElements;i++)
			{
			coupleIdNom = listeControlFormat[i].split("/");
			coupleChamps = coupleIdNom[0].split(",");
			idElement = coupleChamps[0];
			format = coupleChamps[1];
			nomElement = coupleIdNom[1];
			switch(format)
				{
				case "email":
					validMail = controlEmail(idElement);
					if(validMail == false)
						{
						message = message+"\n - "+nomElement+" invalide";
						}
					break;
				default :
					alert("defaut");
					break;
				}
			}
		}
	
	//controle de l'acceptation
	if(listeControleAcceptation != "")
		{
		listeControleAcceptation = listeControleAcceptation.split(";");
		nbElements = listeControleAcceptation.length;
		for(i=0;i<nbElements;i++)
			{
			coupleIdNom = listeControleAcceptation[i].split("/");
			idElement = coupleIdNom[0];
			nomElement = coupleIdNom[1];
			if(document.getElementById(idElement).checked == false)
				{
				message = message+"\n - "+nomElement;
				}
			}
		}
	
	//controle erreur
	if(message != "")
		{
		message = "Le formulaire est mal rempli :\n"+message; 
		alert(message);
		return false;
		}
	else
		{
		document.getElementById(idForm).submit();
		}
	}
/*** FONCTIONS LIEES AUX FORMULAIRES ***/

function openList(n,prefixe)
	{
	
	var nbObjet = parseInt(document.getElementById("nbObjet").innerHTML);
	for(i=0;i<nbObjet;i++)
		{
		if(i==n)
			{
			var classActuelle = document.getElementById(prefixe+i).className;
			if(classActuelle == "")
				{
				document.getElementById(prefixe+i).className = "off";
				}
			else
				{
				document.getElementById(prefixe+i).className = "";
				}
			}
		else
			{
			document.getElementById(prefixe+i).className = "off";
			}
		}
	}
	
/*** fonction d'écriture des mails ***/
function writeMail(id, part1, part2)
	{
	document.getElementById(id).innerHTML = part1+"@"+part2;
	}
function writeMailTo(id, part1, part2,classe)
	{
	document.getElementById(id).innerHTML = "<a class=\""+classe+"\" href=\"mailto:"+part1+"@"+part2+"\">"+part1+"@"+part2+"</a>";
	}
function writeMail2(id, part1, part2)
	{
	document.getElementById(id).href = "mailto:"+part1+"@"+part2;
	}

/***** DISPLAY MANAGEMENT *****/
//generic fonction to display or not an element
function displayElement(elmt, disp){
	document.getElementById(elmt).style.display=disp;
	}

function clearInput(idInput,valueContent)
		{
		var valeur = document.getElementById(idInput).value;
		if(valeur == valueContent) document.getElementById(idInput).value = "";
		}