// Funcion que valida que el valor del objeto que se le pase sea un cif sino devolvera 1.correcto 0.incorrecto
//Necesita incluir la funci&oacute;n de trim y de nif en el mismo fichero
function cif(o_cif)
{

	//Iniciamos las variables
	var vcif = formulario.nifcif.value;
	vcif=vcif.toUpperCase();
	var vnif ="";
	var respuesta=0;
	var sumap=0;
	var sumai=0;
	var suma=0; 
	var ssuma=""; 
	var i_swap=0;
	var i1=0;
	var s1=0;
	var s2=0;	
	var vtabla="JABCDEFGHI";
	
	var longitud=vcif.length;
	
	if(isNaN(vcif.charAt(longitud-1))){
	
		switch(vcif.charAt(longitud-1)){
			case "A":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"1";
						break;
			case "B":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"2";
						break;
			case "C":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"3";
						break;
			case "D":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"4";
						break;
			case "E":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"5";
						break;
			case "F":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"6";
						break;
			case "G":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"7";
						break;
			case "H":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"8";
						break;
			case "I":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"9";
						break;
			case "J":
						vcif=vcif.substr(0, longitud-1);
						vcif = vcif+"0";
						break;
		}	
	}
	
	/*alert(vcif);*/

	if ((vcif.length==9) || (vcif.length==10))
	{
		try{
			//suma de las cifras pares
			sumap= parseInt(vcif.charAt(2)) + parseInt(vcif.charAt(4)) + parseInt(vcif.charAt(6));
			// suma de las cifras impares aplicando el algorismo del cif
			for (var i=1; i<5; i++)
			{
				i_swap=(i*2-1);
		        i1=parseInt(vcif.charAt(i_swap))*2;
				// si es mas grande de 9 sumamos las unidades y decenas independientemente ej 12- 1 +2
		        if (i1>9){
					s1=i1 + "";
					s1=s1.charAt(0);
					s2=i1 + "";
					s2=s2.charAt(1);
					sumai=sumai + parseInt(s1) + parseInt(s2);
				}
		        else{
					s1=i1 + "";
					s1=s1.charAt(0) + "";
					sumai= sumai + parseInt(s1);
				}
			}
			suma=sumap + sumai;
			ssuma=suma + "";
			dc= 10 - parseInt(ssuma.charAt(1)); //calculamos el digito de control que 10 - digito unidad de la suma
			if (dc==10) //si el digito de control es 10 se le asigna el 0
			{
				dc= 0;
			}
			//CONTINUAR POR AQUI
			if (vcif.charAt(0)=='P')
			{
				if (vcif.charAt(8) == String.fromCharCode(64 + dc)){
					respuesta=1;
				}
			}
		    else
			{
				if (vcif.charAt(0)=='X') // si es X hacemos validacion del NIE- CIF
				{
					vnif = vcif.substring(1,11);
					respuesta= nif(vnif);
				}
				else
				{
					if (parseInt(vcif.charAt(8))==dc)
						respuesta=1;
				}
			}
		}catch(e)
		{
			respuesta = 0;
		}
	}
	else
	{
		respuesta =0;
	}
	return (respuesta);
}
