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 verifie(formu) { //,lang
	//text_err= {"nom":"Nom","prenom":"Pr�nom","adresse1":"Adresse postale","telephone":"T�l�phone","societe":"Raison Sociale","activite":"Activit�","objet":"Nature de la demande"};
        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 expNum2 = new RegExp("[1-9]{1}|[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
	var expDate = new RegExp(/^[0-9]{2,2}\/[0-9]{2,2}\/[0-9]{4,4}$/); //date
	var expEmail = new RegExp("^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$"); //emai

        tinyMCE.triggerSave(true, true);

	with(eval("document."+formu)) {
		var prof = (type.length>0) ? type[1].checked : true;
		var err="";
		tberr=new Array();

		for (var i=1; i < verifie.arguments.length; i++)
		{
			var champ=arguments[i];
			
			//on enlève les espaces avant et après le email
			if(champ=='email')
				email.value = email.value.replace(/^\s*/,'').replace(/\s*$/,'');
			
			if(prof){
				if(champ!="autreact" && (!eval(champ+".value") || eval(champ+".value")==0)) tberr.push(champ);
				else if((champ=="titre" || champ=="contenu" || champ=="resume" || champ=="nom" || champ=="prenom" || 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=="code_postal") && !expCP.test(eval(champ+".value")))tberr.push(champ);
                else if((champ=="region") && !expNum2.test(eval(champ+".value")))tberr.push(champ);
				else if((champ=="telephone") && !expTel.test(eval(champ+".value")))tberr.push(champ);
				else if((champ=="email") && !expEmail.test(eval(champ+".value")))tberr.push(champ);
				else if(champ=="autreact" && (activite.selectedIndex==10 && !exp.test(eval(champ+".value"))))tberr.push('autreact');
				else if((champ=="debut" || champ=="fin") && !expDate.test(eval(champ+".value"))) tberr.push(champ);
				else if(champ=="cnil" && !cnil.checked) tberr.push(champ);
                else if(champ=="conditionvente" && !conditionvente.checked && conditionbuy==1) tberr.push(champ);
				else document.getElementById("TD"+champ).className="line";
			}
			else{
				if(champ=="nom" && !exp.test(eval(champ+".value")))tberr.push(champ);
				else if(champ=="email" && !expEmail.test(eval(champ+".value")))tberr.push(champ);
				else if(champ=="cnil" && !cnil.checked) 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(tberr[i]);
				document.getElementById("TD"+tberr[i]).className="error";
				//lerr=(array_key_exists(tberr[i], text_err))? text_err[tberr[i]]:formate(tberr[i]);
				//listerr+="<li>"+lerr+"</li>";
			}
			//listerr+="</ul>";
			//lobj(nom_div).style.display='block';
			//cal(nom_div,150);
			lurl=(document.URL.indexOf("#")>0)? document.URL.substring(0,document.URL.indexOf("#")):document.URL;
			document.location=lurl+'#a-'+formu.substr(4);
		}
		else{
			submit();
		}
	}
}

function verifieAccount(formu) { //,lang
	var nom_div="alerte-"+formu.substr(4);
	var btferm="";
	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
	var ok = true;

	with(eval("document."+formu)) {
		if(formu=="formidentite"){
			if(!exp.test(nom.value)) document.getElementById("TDnom").className="error";
			else submit();
		}
		else{
			if(formu=="formpwd"){
				if(!expMix.test(actualpwd.value)){
					document.getElementById("TDactualpwd").className="error";
					ok = false;
				}
				else document.getElementById("TDactualpwd").className="line";
				
				if(!expMix.test(newpwd.value)){
					document.getElementById("TDnewpwd").className="error";
					ok=false;
				}
				else document.getElementById("TDnewpwd").className="line";

				if(!expMix.test(conf_newpwd.value)){
					document.getElementById("TDconf_newpwd").className="error";
					ok=false;
				}
				else document.getElementById("TDconf_newpwd").className="line";

				if(newpwd.value!=conf_newpwd.value){
					document.getElementById("TDnewpwd").className="error";
					document.getElementById("TDconf_newpwd").className="error";
					ok=false;
				}

				if(ok) submit();
			}
		}
	}
}
