function MM_validateForm() { 
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  var lang = args[args.length-1];
  if(lang=='en'){
	requerido = ' is required.\n';	
	esmail = ' must contain an e-mail address.\n';
	esnumero = ' must contain a number.\n';
	nuemro_entre = ' must contain a number between '+min+' and '+max+'.\n';
	atencion = 'The following error(s) occurred:\n';
  }else{
	requerido = ' es obligatorio.\n';	
	esmail = ' debe ser un e-mail.\n';
	esnumero = ' debe ser un número.\n';
	nuemro_entre = ' debe ser un número entre '+min+' y '+max+'.\n'; 
	atencion = 'ATENCION:\n';
  }
  for (i=0; i<(args.length-2); i+=3) { 
  	test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { 
		nm=val.id; 
		if ((val=val.value.replace(/ /g, ''))!="") {// muy pulenta, no admite espacios
		  if (test.indexOf('isEmail')!=-1) { 
		  	p=val.indexOf('@');
			if (p<1 || p==(val.length-1)){
				errors+=nm+esmail;
				val=MM_findObj(args[i]); 
				val.className = 'resalta';
			}
		  }else if ((test!='R')&&(test!='L')) { 
		  	num = parseFloat(val);
			if (isNaN(val)) {
				errors+=nm+esnumero;
				val=MM_findObj(args[i]); 
				val.className = 'resalta';
			}
			if (test.indexOf('inRange') != -1) { 
				p=test.indexOf(':');
				min=test.substring(8,p); max=test.substring(p+1);
          		if (num<min || max<num){ 
					errors+=nm+nuemro_entre;
					val=MM_findObj(args[i]); 
					val.value = max; val.className = 'resalta';
				}
			} 
		  } 
		}else if (test.charAt(0) == 'R'){
			errors += nm+requerido;
			val=MM_findObj(args[i]); 
			val.className = 'resalta';
			val.value = '';
		}else if (test.charAt(0) == 'L'){
		    val=MM_findObj(args[i]);
		  	if(val.selectedIndex==0){
				errors += nm+requerido;
				val=MM_findObj(args[i]); 
				val.className = 'resalta';
			}
		}
	}
  } 
  if (errors) alert(atencion+errors);  
  document.MM_returnValue = (errors == '');
}