// Vérification des champs d'un formulaire
function trouve_objet(n, d){
        var p,i,x;

        if(!d)d = document;
        if((p = n.indexOf("?")) > 0 && parent.frames.length){
                d = parent.frames[n.substring(p+1)].document;
                n = n.substring(0,p);
        }
        if(!(x = d[n]) && d.all)x = d.all[n];
        for(i=0;!x && i<d.forms.length;i++)x = d.forms[i][n];
        for(i=0;!x && d.layers && i<d.layers.length;i++)x = trouve_objet(n,d.layers[i].document);
        return x;
}

function verif_form(){
        var i,p,q,r,nm,test,num,min,max,champ,errors = '',args = verif_form.arguments,genre = false;

        for(i=0;i<(args.length-2); i+=3){
                test = args[i+2];
                val = trouve_objet(args[i]);
                if(val){
                        nm = val.name;
			//alert(nm);
                        if((val = val.value) != ""){
                                if(test.indexOf('isEmail') != -1){
                                        p = val.indexOf('@');
                                        r = val.indexOf('.');
                                        if(val.search(/ /) != -1){
                                                errors += '- '+nm+' ne peut pas contenir d\'espace.\n';
                                                champ = nm;
                                        }else if((val.search(/ù/)!= -1) || (val.search(/#/) != -1) || (val.search(/'/) != -1) || (val.search(/`/)!= -1) || (val.search(/£/) != -1) || (val.search(/&/)!= -1) || (val.search(/¤/) != -1) || (val.search(/\*/) != -1) || (val.search(/µ/)!= -1) || (val.search(/à/) != -1) || (val.search(/ç/)!= -1) ||(val.search(/²/) != -1) || (val.search(/</) != -1) || (val.search(/>/)!= -1) || (val.search(/\[/) != -1) || (val.search(/\]/)!= -1) ||(val.search(/\(/) != -1) || (val.search(/\)/) != -1)||(val.search(/=/) != -1) || (val.search(/"/) != -1) || (val.search(/;/) != -1) || (val.search(/:/) != -1) || (val.search(/\//)!= -1) || (val.search(/\\/) != -1) || (val.search(/\?/) != -1) || (val.search(/\$/) != -1)){
                                                errors += '- '+nm+' ne peut pas contenir de caractères spéciaux.\n';
                                                champ = nm;
                                        }else if(p < 1 || p == (val.length-1)){
                                                errors += '- '+nm+' doit contenir une adresse mail.\n';
                                                champ = nm;
                                        }else if(r < 1 || r == (val.length-1)){
                                                errors += '- '+nm+' doit contenir une adresse mail.\n';
                                                champ = nm;
                                        }
                                }else if(test.indexOf('isGenre') != -1){
                                        /*for(var i=0; i < document.forms[1].genre.length;i++) {
                                                if(document.forms[1].genre[i].checked) {
                                                        genre = true;
                                                }
                                        }
                                        if(genre == false){
                                                errors += '- civilité\n';
                                                champ = genre;
                                        }
                                        */
                                        genre=true;

				}else if(test.charAt(0) == 'S'){
					for(i=0;i<=1;i++){
						if(document.formAbo.add_distrib[i].checked){
							v = document.formAbo.add_distrib[i].value;		
						}
					}
					if(v == 'Personnelle'){
						if(document.formAbo.profession.value == ''){
							errors += '- Profession\n';
						}
					}else{
						if(document.formAbo.societe.value == ''){
                                                        errors += '- Société ou établissemant\n';
                                                }
					}
                                }else if(test != 'R'){
                                        num = parseFloat(val);
                                        if(val != ''+num){
                                                if(nm == 'num'){
                                                        nm = 'numéro';
                                                }
                                                errors += '- '+nm+' doit contenir un nombre.\n';
                                                champ = nm;
                                        }
                                        if(test.indexOf('inRange') != -1){
                                                p = test.indexOf(':');
                                                min = test.substring(8,p);
                                                max = test.substring(p + 1);
                                                if(num < min || max < num){
                                                        if(nm == 'num'){
                                                                nm = 'numéro';
                                                        }
                                                        errors += '- '+nm+' doit contenir un nombre entre '+min+' et '+max+'.\n';
                                                        champ = nm;
                                                }
                                        }
                                }
                        }else if(test.charAt(0) == 'R'){
                                if(nm == 'add'){
                                        errors += '- adresse\n';
                                }else if(nm == 'code'){
                                        errors += '- code postal\n';
                                }else if(nm == 'mail'){
                                        errors += '- e-mail\n';
                                }else if(nm == 'pwd'){
                                        errors += '- password\n';
				}else if(nm == 'conf_pwd'){
					errors += '- confirmation password\n';
                                }else{
                                        errors += '- '+nm+'\n';
                                }
                                champ = nm;
                        }
                }
        }

        if(errors){
                alert('Les(s) informations(s) obligatoire(s) suivante(s)\nn\'est(sont) pas renseignée(s) :\n'+errors);
                //trouve_objet(champ).focus();
        }

        document.erreur = (errors == '');
} // END
