// JavaScript Document

function openWin(h,l,resiz,adresse) { //v2.0
var PosX = ( screen.availWidth - l ) / 2;
var PosY = ( screen.availHeight - h ) / 2;
var option = "scrollbars=yes,resizable=resiz,top="+PosY+",left="+PosX+",width="+l+",height="+h;
window.open(adresse,"plan",option); 
}

function confirmation(mess,get_chain) {
	var input = confirm("ATTENTION !\n"+mess);
	if(input == true)	{
		self.location.href=get_chain;
	}
}

function GoTo(target,Objet,restore)	{
	eval(target+".location='"+Objet.options[Objet.selectedIndex].value+"'");
	if (restore) Objet.selectedIndex=0;
}

function validate()
{
	var i, nom, champ, type, obligatoire, valConf, args=validate.arguments, errors=false;
	for (i=0;i<(args.length-1);i+=3)
	{
		val=window.document.getElementById(args[i]).value;
		nom=args[i];
		obligatoire=args[i+1];     
		type=args[i+2];
		
		// Le champ est vide, on vérifie s'il est ogligatoire	
		if (val=='' && obligatoire=='o') errors=' Le champ '+nom+' est obligatoire.';
        
        // Le champ n'est pas vide
        else if (val || type.indexOf('CONF')!=-1) {		
			// Verification qu'aucun caractère spéciale n'est présent - LA TOUCHE ENTREE EST PRISE EN COMPTE !!
			//var reg = new RegExp('[a-zA-Z0-9éèêëàäâôöûüùîïç€ \'\.\*,-:%"()!?;@=\+_/]*','g');
			var reg = new RegExp('[\$<>{}#|\*¤~\{\}]','g');
			var regMail = new RegExp('^[a-zA-Z0-9][a-zA-Z0-9\-\._]*[a-zA-Z0-9]@[a-zA-Z0-9\-_]+\.[a-zA-Z]{2,4}$','g');
			var regUrl = new RegExp('^http://[A-Za-z0-9_.%/?=&#:;+-]{4,}$','g')
			var regPass = new RegExp('^[a-zA-Z0-9éèêëàäâôöûüùîïç\.@&,;:!%+_\-]*$','g');
			var regTel = new RegExp('^([0-9]{2} ){4}[0-9]{2}$','g');
			if (reg.test(val)) {
				errors='Le champ '+nom+' comporte un ou plusieurs caractères spéciaux interdits.';
			}
			
			// Vérification du nombre de caractère si obligatoire
			reg2 = new RegExp("-");
			nombre=type.substring(4);
			nombre2=nombre.replace(reg2,'');
			if (nombre2!='') {
				if (reg2.test(nombre) && val.length<nombre2) 
					errors='Le champ '+nom+' doit comporter au moins '+nombre2+' caractères.';
				else if (!reg2.test(nombre) && val.length!=nombre2) 
				 	errors='Le champ '+nom+' doit comporter '+nombre+' caractères.';				
			}	
			
			// Vérification pour un champ de type mail
			if ((type.indexOf('MAIL')!=-1) && !regMail.test(val))			
				errors='L\'adresse e-mail que vous avez rentré n\'est pas valide.';
			
			// Vérification pour un champ de type url
			if ((type.indexOf('LIEN')!=-1) && !regUrl.test(val))			
				errors='Le lien internet que vous avez rentré ne semble pas valide.\nCelui-ci doit être de la forme : http://www.monsite.com';
			
			// Vérification pour un champ de type nombre
			else if ((type.indexOf('NUME')!=-1) && isNaN(val)) 
                errors='Le champ '+nom+' doit être un nombre.'; 		
			
			// Verification pour un champ de type password
			else if (type.indexOf('PASS')!=-1) { 
                valConf=val;
                if (!regPass.test(val))
                    errors='Le champs '+nom+' :\n\n- ne doit contenir ni espace ni caractères spéciaux.';
            }
            // Verification d'un champ de confirmation
            else if ((type.indexOf('CONF')!=-1) && (val!=window.document.getElementById(args[i-3]).value)) {
                window.document.getElementById(args[i]).value='';
                window.document.getElementById(args[i-3]).value='';
                errors = 'Les champs '+args[i-3]+' et '+nom+' ne sont pas identiques.\n\nVeuillez les rentrer à nouveau.';       
            }
			// Vérification d'un champ de type téléphone
			else if (type.indexOf('TELE')!=-1 && !regTel.test(val)) 
				errors = 'Le numéro de téléphone n\'est pas valide, veuillez rentrer un numéro sous la forme : 00 04 00 XX 00.';				             
		}
		if (errors) break;
	}
	if (errors) alert ('L\'erreur suivante a été rencontrée :\n\n'+errors+'\n '); 
	document.returnValue = (errors == '');
}