function checkForm(){
/* 
  La función 'checkForm' se encarga de evaluar los campos de los
  formularios según el tipo de comprovación pedida:
  1. Obligatorio (ob)
  2. Numérico (num)
  3. Email (email)

  La manera de pasar los parámetros (al invocar la función) 
  es en pares de valores del tipo: (tipoError,nombreCampo)
  y habrán tantos pares como campos queramos comprobar.

*/
	var args, numArgs, descError='Han ocurrido los siguientes errores:\n\n', tipoError, nombreCampo, valorCampo;

	//metemos en la variable 'args' los argumentos de la función
	args = checkForm.arguments;
	//y en 'numArgs' metemos el número de argumentos
	numArgs = args.length;	
	
	//Con el 'for' recorremos los pares de valores y tratamos los posibles errores
	for (i=0; i<numArgs; i+=2){
		tipoError = args[i];
		nombreCampo = args[i+1];
		/*
		  Obtenemos el valor del campo correspondiente gracias al nombre
		  pasado como parámetro y al método 'getElementById'
		*/
		valorCampo = document.getElementById(nombreCampo).value;
		
		switch(tipoError){

			case 'ob':
				if (valorCampo==''){
					descError += "- Es obligatorio rellenar el campo '" + nombreCampo + "'\n";
				}
				break;

			case 'num':
				valorCampo=parseFloat(valorCampo);
				
				if(isNaN(valorCampo)){
					descError += "- El campo '" + nombreCampo + "' debe contener un número.\n";
				}
				break;
			
			case 'email':
				/*
					Para mirar si un campo contiene un email, hacemos lo siguiente:
					1º Miramos que en el campo haya algo (valorCampo!='')
					2º Comprobamos que aparezca la @ y que además su posición no sea 
					   ni el primer, ni el último caracter.
				*/
				if( valorCampo!='' && (valorCampo.indexOf('@')==-1 || valorCampo.indexOf('@')==0 || valorCampo.indexOf('@')==valorCampo.length-1) ){
					descError += "- El campo '" + nombreCampo + "' debe contener una dirección de correo electrónico.\n";
				}
				break;

		}//end_switch
		
	}//end_for
	
	/*
	  Si la cadena de descripción de errores contiene algo diferente
	  a lo que contenía al declararla, han ocurrido errores,
	  los mostramos y no enviamos el formulario.
	  Sólo lo enviamos si dicha cadena continua igual.
	*/
	if (descError!='Han ocurrido los siguientes errores:\n\n'){
		alert(descError);
	}else{
		document.formulario.submit();
	}

}//end_checkForm

function checkFormCat(){
/* 
  La función 'checkForm' se encarga de evaluar los campos de los
  formularios según el tipo de comprovación pedida:
  1. Obligatorio (ob)
  2. Numérico (num)
  3. Email (email)

  La manera de pasar los parámetros (al invocar la función) 
  es en pares de valores del tipo: (tipoError,nombreCampo)
  y habrán tantos pares como campos queramos comprobar.

*/
	var args, numArgs, descError='Han ocorregut els següents errors:\n\n', tipoError, nombreCampo, valorCampo;

	//metemos en la variable 'args' los argumentos de la función
	args = checkFormCat.arguments;

	//y en 'numArgs' metemos el número de argumentos
	numArgs = args.length;	
	
	//Con el 'for' recorremos los pares de valores y tratamos los posibles errores
	for (i=0; i<numArgs; i+=2){
		tipoError = args[i];
		nombreCampo = args[i+1];
		/*
		  Obtenemos el valor del campo correspondiente gracias al nombre
		  pasado como parámetro y al método 'getElementById'
		*/
		valorCampo = document.getElementById(nombreCampo).value;
		
		switch(tipoError){

			case 'ob':
				if (valorCampo==''){
					descError += "- Es obligatori emplenar el camp '" + nombreCampo + "'\n";
				}
				break;

			case 'num':
				valorCampo=parseFloat(valorCampo);
				
				if(isNaN(valorCampo)){
					descError += "- El camp '" + nombreCampo + "' ha de contindre un número.\n";
				}
				break;
			
			case 'email':
				/*
					Para mirar si un campo contiene un email, hacemos lo siguiente:
					1º Miramos que en el campo haya algo (valorCampo!='')
					2º Comprobamos que aparezca la @ y que además su posición no sea 
					   ni el primer, ni el último caracter.
				*/
				if( valorCampo!='' && (valorCampo.indexOf('@')==-1 || valorCampo.indexOf('@')==0 || valorCampo.indexOf('@')==valorCampo.length-1) ){
					descError += "- El camp '" + nombreCampo + "' ha de contindre una adreça de correu electrònic.\n";
				}
				break;

		}//end_switch
		
	}//end_for
	
	/*
	  Si la cadena de descripción de errores contiene algo diferente
	  a lo que contenía al declararla, han ocurrido errores,
	  los mostramos y no enviamos el formulario.
	  Sólo lo enviamos si dicha cadena continua igual.
	*/
	if (descError!='Han ocorregut els següents errors:\n\n'){
		alert(descError);
	}else{
		document.formulario.submit();
	}

}//end_checkForm
