function checkAll(parametros){
	bad_exist = 0;
	bad_alfanum = 0;
	bad_num = 0;
	bad_date = 0;
	bad_mail = 0;
	bad_radio = 0;
	bad_idem = 0;
	pre_exist = '';
	for (var i=0; i < arguments.length/2; i++) {
	  switch(arguments[i]) {
		case "alfanum":
		  alfanum = arguments[i + arguments.length/2];
		  bad_alfanum = checkAlfanum(alfanum);
		  break;
		case "num":
		  num = arguments[i+ arguments.length/2];
		  bad_num = checkNum(num);
		  break;
		case "date":
		  date = arguments[i+ arguments.length/2];
		  bad_date = checkDate(date);
		  break; 
		case "mail":
		  mail = arguments[i+ arguments.length/2];
		  bad_mail = checkMail(mail);
		  break;
		case "radios":
		  radios = arguments[i+ arguments.length/2];
		  d = radios.length;
		  radios_array = 0; 
		  bad_radio = '';
		  for (var c = 0; c < d; c++) {
			radios_array = radios[c];
			bad_exist = checkRadios(radios_array);		 
		  }
		  break;
		case "idem":
		  idem = arguments[i+ arguments.length/2];
		  bad_idem = checkIdem(idem);
		  break;
	  }
	}  
	temp_array = new Array(0);
	pre_exist= new Array(0);
	j = arguments.length/2;
	for (var c=j; c < arguments.length; c++){
	   if(arguments[c-j] == 'radios' || arguments[c-j] == 'idem'){
		 continue;
	   }
	   else
		 pre_exist = temp_array.concat(pre_exist, arguments[c]);   
	 }	  
	 exist = pre_exist.slice(0,pre_exist.length);
	 bad_exist = checkExist(exist);

	error = 0;
	error_string= '';
	comma_re = /,/g;

	if(bad_exist){
		msg_exist = MrWolf(bad_exist);
	if (bad_exist.length > 1)
	  error_string = error_string +"\nLos campos:\n"+ msg_exist +"son obligatorios\n";
	else 
		  error_string = error_string +"\nEl campo:\n"+ msg_exist +"es obligatorio\n";
	error = 1;
	}

	if(bad_alfanum){
		msg_alfanum = MrWolf(bad_alfanum);
	if (bad_alfanum.length > 1)
	  error_string = error_string +"\nLos campos:\n"+ msg_alfanum +"sólo aceptan números o letras\n";
	else 
		  error_string = error_string +"\nEl campo:\n"+ msg_alfanum +"sólo acepta números o letras\n";
	error = 1;
	}

	if(bad_num){
		msg_num = MrWolf(bad_num);
	if (bad_num.length > 1)
	  error_string = error_string +"\nLos campos:\n"+ msg_num +"sólo aceptan números\n";
	else 
		  error_string = error_string +"\nEl campo:\n"+ msg_num +"sólo acepta números\n";
	error = 1;
	}

	if(bad_date){
		msg_date = MrWolf(bad_date);
		if (bad_date.length > 1)
		error_string = error_string +"\nLos campos:"+ msg_date +"deben ser del tipo dd/mm/aaaa (ej.05/12/2001)\n"
	else 
		  error_string = error_string +"\nEl campo:"+ msg_date +"debe ser del tipo dd/mm/aaaa (ej.05/12/2001)\n";
	error = 1;
	}

	if(bad_mail){
		msg_mail = MrWolf(bad_mail)
		if (bad_mail.length > 1)
		error_string = error_string +"\nLos campos:"+ msg_mail +"tienen valores inválidos\n";
		else 
		  error_string = error_string +"\nEl campo:"+ msg_mail +"tiene un valor inválido\n";
	error = 1;
	}

	if(bad_radio){
	  msg_radio = MrWolf(bad_radio);
	  error_string = error_string +"\nLos checkbox:"+ msg_radio +"deben ser selecionados\n";
	  error = 1;
	}

	if(bad_idem){
		msg_idem = MrWolf(bad_idem);
		if (bad_idem.length > 1)
		error_string = error_string +"\nLos campos:"+ msg_idem +"deben tener los mismos valores que sus confirmaciones\n";
	else 
		  error_string = error_string +"\nEl campo:"+ msg_idem +"debe tener el mismo valor que su confirmación\n";
	error = 1;
	}

	if (error){
	alert(error_string);
		arguments=0;
		return false;
	}
	else return true;
}


function checkExist(exist) {
   l = exist.length;
   error = 0;
   bad_exist = new Array(0);
   temp_Array = new Array(0);
//	 bad_exist = '';
   for (var i=0; i < l; i++) {
		if (!exist[i].value){
		  bad_exist = temp_Array.concat(bad_exist, [exist[i].name]);
		error = 1;
	  }
   }
   if (error) {
	 return bad_exist;
   }
   else return 0;
}

function checkAlfanum(alfanum){	 
   l = alfanum.length;
   error = 0;
   re = new RegExp("[^ a-z0-9_]","i");
   temp_Array = new Array(0);
   bad_alfanum = new Array(0);
   for (var i=0; i < l; i++) {
	 if (re.test(alfanum[i].value)){
	   bad_alfanum = temp_Array.concat(bad_alfanum, [alfanum[i].name]);
	   error = 1;
	 }
   }
   if (error) {
	 return bad_alfanum;
   }
   else return 0;
}

function checkNum(num){
  l = num.length;
  error = 0;
  re = /\D/	  
   bad_num = new Array(0);
   temp_Array = new Array(0);
   for (var i=0; i < l; i++) {
	 if (re.test(num[i].value)){
	   bad_num = temp_Array.concat(bad_num, [num[i].name]);
	   error = 1;
	 }
   }
   if (error) {
	 return bad_num;
   }
   else return 0;
return 0;
}


function checkDate(date){
   l = date.length;
   error = 0;
   bad_date = new Array(0)
   bad_date = ''
   for (var i=0; i < l; i++) {
		campo=0;
		error_campo = 0;
		campo=date[i].name;
		date2=date[i].value;

		if (date[i].value == 'dd/mm/aaaa'){
			  error_campo=campo;
		}	 
		if (date2.charAt(0)>3){
			error_campo=campo;
		}
		if (date2.charAt(0)==3){
			if (date2.charAt(1)>1){
			error_campo=campo;
			}
		}
		if(date2.charAt(2)!='/'){
		error_campo=campo;
		}		
		if (date2.charAt(3)>1){
			error_campo=campo;
		}
		if (date2.charAt(3)>0){
			if (date2.charAt(4)>2){
			error_campo=campo;
			}
		}
		if (date2.charAt(5)!='/'){
		error_campo=campo;
		}	
		
		if(error_campo){
		   bad_date = temp_Array.concat(bad_date, [date[i].name]);
		   error=1;	   
		}  
	 }					   //cierro el for
	 if (error) {
	 return bad_date; 
	 }
}

function checkMail(mail){
 if(mail[0].value != 0){   
   l = mail.length;
   error = 0;
   temp_Array = new Array(0);
   mail_re = new RegExp("^(\\w+)(\.\\w)*@(\\w+)(\.\\w)+", "ig");
   bad_mail = new Array(0)
   for (var i=0; i < l; i++) {
	 if (!mail_re.test(mail[i].value)){
	   bad_mail =  temp_Array.concat(bad_mail, [mail[i].name]);
	   error = 1;
	 }
   }
   if (error) {
	 mail = 0
	 return bad_mail;
   }
   else return 0;
 }
}

function checkRadios(radios_array, error_name){
   l=0;
   l =	radios_array.length;
   no_error = 0;
   error = 0;
   error_name = '';

   for (i = 0; i < l; i++) {	  
	 if(radios_array[i].checked){
		no_error = 1;
	  }
   }
   if(!no_error){
	 error_name = radios_array[0].name;
	 error = 1;
   } 
   if (error) {
	 bad_radio = temp_Array.concat(bad_radio, [error_name]);
	 return bad_radio;
   }
  else return 0;
}

function checkIdem(idem){
  l = idem.length;
  error = 0;
  temp_Array = new Array(0);
  bad_idem = new Array(0);
  for (var i=0; i < l; i++){
	first = idem[i][0].value
	for (var j=0; j<idem[i].length; j++){
	  if (idem[i][j].value != first){
		error = 1;
		bad_idem = temp_Array.concat(bad_idem, [idem[i][0].name]);
		break;
	  }
	}
  }
  if (error) {
	return bad_idem;
  }
  else return 0;
}

function MrWolf(bad_array){
  bad_string = ''; 
  Re = new RegExp("^(N)(\\d){3}");
  for (x = 0; x < bad_array.length; x++){
	if (Re.test(bad_array[x]))
	  bad = bad_array[x].slice(4,bad_array[x].length);
	else
	  bad = bad_array[x].slice(0,bad_array[x].length);
	
	bad_string = bad_string + '\t' + bad  +'\n';
  }
  return bad_string;
}


function excluyentes(arguments){
	for (var i=0; i < arguments.length; i++) {
	  a = arguments[i]
	  for (c = 0; c < arguments[i].length; c++){
		a[c].checked=false;
	  }
	}
}

function filterText(forma) {   

   for (var i = 0; i < forma.length; i++){
	  forma.elements[i].value = forma.elements[i].value.replace(/\\/g, "\\\\");
	  forma.elements[i].value = forma.elements[i].value.replace(/\'/g, "\\'");
	  forma.elements[i].value = forma.elements[i].value.replace(/&/g, "&amp\;");
	  forma.elements[i].value = forma.elements[i].value.replace(/\"/g, "&quot\;");
	  forma.elements[i].value = forma.elements[i].value.replace(/</g, "&lt\;");
	  forma.elements[i].value = forma.elements[i].value.replace(/>/g, "&gt\;");
   }
   return forma;
}

function process_select(select_field){
  ok_field = select_field.options[select_field.selectedIndex];
  ok_field.name = select_field.name;
  return ok_field
}

function owc(page, data){
  page.document.open();
  page.document.write(data);
  page.document.close();
}

function real_true(x){
	if (typeof x == typeof true && x != false)
		return true;
	else
		return false;
}