function in_array(needle, haystack, strict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    var found = false, key, strict = !!strict;
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
	        }
	    }
    return found;
	}

function array_key_exists ( key, search ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Felix Geisendoerfer (http://www.debuggable.com/felix)
    // *     example 1: array_key_exists('kevin', {'kevin': 'van Zonneveld'});
    // *     returns 1: true
    // input sanitation
    if( !search || (search.constructor !== Array && search.constructor !== Object) ){
        return false;
		}
    return key in search;
	}
	
function formate(champ) {
	joli=champ.substr(0, 1).toUpperCase()+champ.substr(1, champ.length-1);// mettre la 1° lettre en Majusc
	joli=joli.replace(/\_/g, " ");// remplacer les underscores par des espaces
	return joli;
	}

function is_majeur(annee, mois, jour) {
	datecourante = new Date();
	if(datecourante.getFullYear() - 18 < annee) {
		return false;
		}
	else if(datecourante.getFullYear() - 18 == annee){		
		if((datecourante.getMonth()+1) == mois) {
			if(datecourante.getDate() < jour)return false;
			else return true;
			}
		else {
			if((datecourante.getMonth()+1) < mois)return false;
			else return true;
			}
		}
	else return true;
	}
	
function verifie(formu) {
	text_err= {"nom":"Nom","prenom":"Prénom","rue":"Numéro, rue, voie, lieu-dit","adresse1":"Numéro, rue, voie, lieu-dit","telephone":"Téléphone","dep_de_naiss":"Département de naissance","societe":"Société","expemail":"Votre adresse E-mail","destimail":"L'adresse E-mail du(des) destinataire(s)","naiss":"Date de naissance (vous devez être majeur)"};
	var nom_div="alerte-"+formu.substr(4);
	//var btferm="<br /><br /><input type='button' value='Fermer' onclick=\" boujY('alerte',-500)\" />"; //lobj('alerte').style.display='none'	
	var btferm=""; // POUR FERMER LE BLOC ERREUR : var btferm="<br /><br /><a href='javascript:;' onclick=\"lobj('"+nom_div+"').style.display='none'\">Fermer</a>";
	var exp = new RegExp("[a-zA-Z\s]{2,50}"); // texte uniquement
	var expMix = new RegExp("[0-9a-zA-Z]{2,50}"); // texte et nombres (ex. adresses)
	var expNum = new RegExp("[0-9]{2,16}"); // chiffres et nombres uniquement
	var expTel = new RegExp("[ /\()+.0-9]{10,20}"); // N° tél
	var expLog = new RegExp("[a-zA-Z0-9]{6,16}"); // Login et pass
	var expCP = new RegExp("[0-9]{5,5}"); // code postal

	with(eval("document."+formu)) {
		var err="";				
		tberr=new Array();
		for (var i=1; i < verifie.arguments.length; i++)
		{
			var champ=arguments[i];
			if((champ != 'naiss')&&(!eval(champ+".value") || eval(champ+".value")==0))tberr.push(champ);
			else if((champ=="nom" || champ=="prenom" || champ=="nom_de_jeune_fille" || champ=="ville_de_naissance" || champ=="ville") && !exp.test(eval(champ+".value")))tberr.push(champ);
			else if((champ=="rue" || champ=="adresse1") && !expMix.test(eval(champ+".value")))tberr.push(champ);
			else if((champ=="dep_de_naiss") && !expNum.test(eval(champ+".value")))tberr.push(champ);
			else if((champ=="code_postal") && !expCP.test(eval(champ+".value")))tberr.push(champ);
			else if((champ=="telephone") && !expTel.test(eval(champ+".value")))tberr.push(champ);
			else if((champ=="naiss") && !is_majeur(eval('A'+champ+".value"),eval('M'+champ+".value"),eval('J'+champ+".value")))tberr.push(champ);
			else if((champ=="email"||champ=="expemail"||champ=="destimail") && (eval(champ+".value").indexOf("@")<1 || eval(champ+".value").lastIndexOf(".")<eval(champ+".value").indexOf("@")|| eval(champ+".value").lastIndexOf(".")>=(eval(champ+".value").length-2)))tberr.push(champ);
			else document.getElementById("TD"+champ).className="line";
		}
		if(tberr.length>0) {
			var listerr="<ul>";
			for(i=0; i < tberr.length; i++) {		
				//alert(lobj("TD"+tberr[i]).className);
				document.getElementById("TD"+tberr[i]).className="error";
				//listerr+="<br /><b>"+formate(tberr[i])+"</b>";
				lerr=(array_key_exists(tberr[i], text_err))? text_err[tberr[i]]:formate(tberr[i]);
				listerr+="<li>"+lerr+"</li>";
				}
			listerr+="</ul>";
			lobj(nom_div).innerHTML="Veuillez renseigner correctement les champs suivants<br />"+listerr+btferm;
			lobj(nom_div).style.display='block';
			lurl=(document.URL.indexOf("#")>0)? document.URL.substring(0,document.URL.indexOf("#")):document.URL;
			document.location=lurl+'#a-'+formu.substr(4);
			//lobj('alerte').innerHTML="Veuillez renseigner les champs obligatoires<br />"+listerr+btferm;
			//cal('alerte',250);
			//alert('Veuillez renseigner les champs obligatoires');
			//return false;
			}
		else{
			submit();
			}
		}
	}
