
	// función String f_validarcif(String supuestoCif, String campo)
	// @process Comprueba que la cadena supuestoCif es efectivamente un CIF válido
	// @param supuestoCif - la cadena que queremos validar como CIF.
	// @param campo - el nombre del campo.
	// @return - cadena vacia si supuestoCif es un CIF válido, mensaje(s) de error en caso contrario.
	// @version 1.0
	// @author Pablo Elfau
	// @ejemplo de llamada - mensaje+=f_validarcif(form.cif.value,"CIF");
	function f_validarcif(supuestoCif,campo){
		// Primero ver si el formato está bien
		var retorno="";
		var temp = supuestoCif.toUpperCase(); // pasar a mayúsculas
	
		if (!/^[A-Za-z0-9]{9}$/.test(temp)){  // Son 9 dígitos? 
			retorno+="Longitud incorrecta del campo "+campo+", un CIF consta de 9 dígitos.\n";
		}
		if (!/^[ABCDEFGHKLMNPQS]/.test(temp)){ // Es una letra de las admitidas ?
			retorno+="El primer carácter del campo "+campo+" debe ser una letra de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S.\n";
		}
		
		// Ahora miramos el carácter de control
		if(retorno==""){
			var letras="ABCDEFGHIJ";
			var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
			var temp = 0; 
			var temp1;
		  	var control=0;
			
			for( i = 2; i <= 6; i += 2 ) 
			{
			  temp = temp + v1[ parseInt(supuestoCif.substr(i-1,1)) ];
			  temp = temp + parseInt(supuestoCif.substr(i,1));
			}
		
			temp = temp + v1[ parseInt(supuestoCif.substr(7,1)) ];
			temp = (10 - ( temp % 10));
			
			
			if(temp!=10){
				control=temp;
			}
			if(!((supuestoCif.substr(8,1)==letras.charAt(temp-1)) || (parseInt(supuestoCif.substr(8,1))==(control)))){
				retorno+="El carácter de control en el campo "+campo+" no se corresponde con el resto del CIF.\n";
			}
		
		}
		return retorno;
	}