ns4 = (document.layers)? true:false
ie4 = (document.all && !document.getElementById)? true:false
dom = (document.getElementById)? true:false

var Taille_comment = 1000;	// Taille du champ de commentaire 
var Taille_prof = 1500;		// Taille du champ parcours professionnel
var Taille_motiv = 2000;	// Taille du champ motivations

msg_erreur = new Array();
msg_erreur["header"]	= "Erreur dans les informations saisies :";
msg_erreur["start"]	= "->";
msg_erreur["field"]	= " Le champ ";
msg_erreur["require"]	= " ne peut être vide";
msg_erreur["exact"]	= " doit contenir ";
msg_erreur["min"]	= " doit contenir au moins ";
msg_erreur["max"]	= " ne peut contenir plus de ";
msg_erreur["minmax"]	= " et pas plus de ";
msg_erreur["chars"]	= " caractères";
msg_erreur["select"]	= " doit être selectionné";
msg_erreur["radio"]	= " doit être selectionné";
msg_erreur["num"]	= " doit être numérique";
msg_erreur["email"]	= " doit contenir une adresse e-mail valide";
msg_erreur["telephone"]	= " doit contenir un numero de téléphone valide";
msg_erreur["date"]	= " doit contenir une date valide";


form_name = '';


function limite(champ,taille) { 
	if(champ.value.length >= taille) { 
		alert ("Vous avez d&eacute;pass&eacute; le nombre maximum de caract&egrave;res"); 
		champ.value = champ.value.substr(0, taille); 
		return false; 
		} 
	} 



checkObjects = new Array();

function define(element_name,type,HTMLname,min,max){
	eval("V_"+element_name+" = new formResult(document.forms[form_name].elements[element_name],type,HTMLname,min,max);");
	checkObjects[eval(checkObjects.length)] = eval("V_"+element_name);
	}



function formResult(form,type,HTMLname,min,max){
	this.form = form;
	this.type = type;
	this.HTMLname = HTMLname;
	this.min  = min;
	this.max  = max;
	}
	


function validate(id,errors2){

	checkObjects = new Array();
	eval('init_form'+id+'()');

	errors = "";
	
	if(checkObjects.length>0){
	
		for(i=0;i<checkObjects.length;i++){
		
			validateObject = new Object();
			validateObject.form = checkObjects[i].form;
			validateObject.HTMLname = checkObjects[i].HTMLname;
			validateObject.type = checkObjects[i].type;
			validateObject.min = checkObjects[i].min;
			validateObject.max = checkObjects[i].max;
			
			if (validateObject.type == "select" && ns4){		
				validateObject.val = validateObject.form.options[validateObject.form.selectedIndex].value;
				validateObject.len = validateObject.val.length;
				}
			else if (validateObject.type == "radio"){
				if (validateObject.form.length){
					val=""
					for (j=0;j<validateObject.form.length;j++){
						if (validateObject.form[j].checked){val=validateObject.form[j].value}
						}
					validateObject.val = val;
					validateObject.len = validateObject.val.length;
					}
				else {
					validateObject.val=validateObject.form.checked
					validateObject.len = 1;
					}
				} 
			else {
				validateObject.val = checkObjects[i].form.value;
				validateObject.len = checkObjects[i].form.value.length;
				}
							
			
	
			if ( validateObject.type == "string" ){
			
				if ( validateObject.len <= 0 ){ 
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['require'] + "\n";
					}
				else if ( validateObject.min == validateObject.max && validateObject.len != validateObject.min ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['exact'] + validateObject.max + msg_erreur['chars']+"\n"; 
					} 
				else if ( validateObject.len < validateObject.min ){ 
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['min'] + validateObject.min + msg_erreur['chars'] + "\n";
					} 
				else if ( validateObject.len > validateObject.max ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['max'] + validateObject.max + msg_erreur['chars'] + "\n";
					} 
										
				} 
				
			else if ( validateObject.type == "num" ){
			
				re = /^[0-9\s]+$/g
				if ( validateObject.len <= 0 ){ 
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['require'] + "\n";
					}
				else if ( validateObject.val.search(re) != 0 ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['num'] + "\n";
					}
					
				} 
				
			else if ( validateObject.type == "num_borne" ){
			
				re = /^[0-9\s]+$/g
				if ( validateObject.len <= 0 ){ 
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['require'] + "\n";
					}
				else if ( validateObject.val.search(re) != 0 ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['num'] + "\n";
					}
				else if ( validateObject.val<validateObject.min ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['exact'] + validateObject.max + msg_erreur['chars']+"\n"; 
					} 
				else if ( validateObject.val>validateObject.max ){ 
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['min'] + validateObject.min + msg_erreur['chars'] + "\n";
					} 
					
				} 
				
			else if ( validateObject.type == "select" ){
			
				if ( validateObject.val == "" || validateObject.val == -1 ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['select']+"\n";
					} 
															
				} 
				
			else if ( validateObject.type == "telephone" ){
			
				re = /^[0-9()\+\s]+$/g
				if (validateObject.val.search(re) != 0 || validateObject.len < validateObject.min || validateObject.len > validateObject.max ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['telephone'] + "\n";
					}
																			
				} 
				
			else if ( validateObject.type == "email" ){
			
				re = /^[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+\.[a-zA-Z]+$/g
				re2 = /\.[a-zA-Z]{2,4}$/
				if (validateObject.val.search(re) != 0 || validateObject.val.search(re2)==-1){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['email'] + "\n";
					}
					
				}
				
			else if ( validateObject.type == "email_tab" ){
			
				re = /^[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+\.[a-zA-Z]+$/g
				re2 = /\.[a-zA-Z]{2,4}$/
				re3 = /\s/g
				email_var=validateObject.val.split(";")
				for (j=0;j<email_var.length;j++){
					email_var_str=new String(email_var[j])
					email_var_str=email_var_str.replace(re3,"")
					if (email_var_str!=""){
						if (email_var_str.search(re) != 0 || email_var_str.search(re2)==-1){
							errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['email'] + "\n";
							}
						}
					}
					
				}
				
			else if ( validateObject.type == "date" ){
			
				re = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/g
				if (validateObject.val.search(re) != 0 || validateObject.val.substr(0,2)>31 || validateObject.val.substr(3,2)>12 || validateObject.val.substr(6,4)>2000 || validateObject.val.substr(6,4)<1900 ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['date'] + "\n";
					}
					
				}
				
			else if ( validateObject.type == "date_courte" ){
			
				re = /^[0-9]{2}\/[0-9]{2}\/[0-9]{2}$/g
				if (validateObject.val.search(re) != 0 || validateObject.val.substr(0,2)>31 || validateObject.val.substr(3,2)>12 || validateObject.val.substr(6,2)>2000 || validateObject.val.substr(6,2)<1900 ){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['date'] + "\n";
					}
					
				}
				
			else if ( validateObject.type == "radio" ){
				if (validateObject.val == ""){
					errors += msg_erreur['start'] + msg_erreur['field'] + "\""+ validateObject.HTMLname + "\""+ msg_erreur['radio'] + "\n";
					}
					
				}
			}
		}
		
	errors=errors+errors2
		
	if (errors) {
		alert(msg_erreur["header"].concat("\n"+errors));
		return false;
		} 
	else {
		return true;
		}
	
	
	}
