/*function PNG_loader() { 
   for(var i=0; i<document.images.length; i++) { 
      var img = document.images[i]; 
      var imgName = img.src.toUpperCase(); 
      if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { 
         var imgID = (img.id) ? "id='" + img.id + "' " : ""; 
         var imgClass = (img.className) ? "class='" + img.className + "' " : ""; 
         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "; 
         var imgStyle = "display:inline-block;" + img.style.cssText; 
         if (img.align == "left") imgStyle += "float:left;"; 
         if (img.align == "right") imgStyle += "float:right;"; 
         if (img.parentElement.href) imgStyle += "cursor:hand;"; 
         var strNewHTML = "<span " + imgID + imgClass + imgTitle 
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" 
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" 
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"; 
         img.outerHTML = strNewHTML; 
         i--; 
      } 
   } 
} 
window.attachEvent("onload", PNG_loader);

*/
		
function comprobar_fecha(fecha)
{		
	var total=fecha.length;
	var error="";
				
	//comprobamos que tenga dd-mm-aaaa							
/*	var array_fecha = fecha.split("-");
	// o dd/mm/aaaa
	if(array_fecha.length==1)
	{
		var array_fecha = fecha.split("/");
	}
	*/			 
	var array_fecha = fecha.split("/");
    //si el array no tiene tres partes, la fecha es incorrecta 
    if (array_fecha.length!=3 || total<10) 
		error="La Fecha no es Correcta, debe seguir el formato dd-mm-aaaa ó dd/mm/aaaa";
				
    //compruebo que los ano, mes, dia son correctos 
    var ano 
    ano = parseInt(array_fecha[2]); 
    //alert (ano)
    if (isNaN(ano)) 
    	error=error+"\n El Año Introducito no es Correcto";
				      				
	var mes 
	mes = parseInt(array_fecha[1],10); 
	if (isNaN(mes) || mes>12 || mes<1) 
		error=error+"\n El Mes Introducido no es correcto";
				
	var dia 
	
	
	dia = parseInt(array_fecha[0],10); 
	
	 //compobamos si es día bisiesto. vamos a comprobar que no haya un dia 31 en los meses de 30 días etc.
	var bisiesto=false;
	if(ano%4==0)//divisible entre 4
	{
		if(ano%100==0)//excepto divisibles entre 100
		{
			if(ano%400==0)//salvo los divisibles entre 400
				bisiesto=true;
		}
		else //el divisible entre 4 normal que no es fin de siglo.		
			bisiesto=true;	
	} 

	if(isNaN(dia) || dia <1)
	{
		
		error=error+"\n El Día Introducido no es Correcto";
	}
	else
	{
		if(mes<8 && mes%2==0)
		{
			if(mes==2)
			{				
				if(dia>29)
					error=error+"\n El Mes Introducido no tiene "+dia+" días, sólo 29";		
				else if (!bisiesto && dia>28)
					error=error+"\n El Mes Introducido no tiene "+dia+" días, sólo 28";	
			}
			else
			{
				if(dia>30)
					error=error+"\n El Mes Introducido no tiene "+dia+" días, sólo 30";		
			}
		}
		if(mes<8 && mes%2==1 && dia>31)
			error=error+"\n El Mes Introducido no tiene "+dia+" días, sólo 31";		
		if(mes>8 && mes%2==0 && dia>31)
			error=error+"\n El Mes Introducido no tiene "+dia+" días, sólo 31";		
		if(mes>8 && mes%2==1 && dia>30)
			error=error+"\n El Mes Introducido no tiene "+dia+" días, sólo 30";		
	}
			    	
	  
	return error;
}


function comprobar_telefono(objeto,tipo)
		{
			telf=objeto.value;
			if (!/^\d{9}$/.test(telf)) 
			{
				objeto.style.border="1px solid #E05C6C";
			
				alert("El "+ tipo +" no es válido");				
				return 0;
			}
			objeto.style.border="1px solid #6D94C7";
			return 1;
		}
		
		function comprobar_mail(objeto)
		 {
		 	cadena=objeto.value;		 
			var plant = /[^\w^@^\.^-]+/gi
			if (plant.test(cadena))
			{
				objeto.style.border="1px solid #E05C6C";			
				alert("El e-mail "+cadena + " contiene caracteres extraños")
				return 0;			
			}
			else
			{
			     plant =/(^\w+)(@{1})([\w\.-]+$)/i
			     if (!plant.test(cadena))
			     {			     	
			  	  	 objeto.style.border="1px solid #E05C6C";
			         alert("El e-mail "+cadena + " no es válido") 
			         return 0;
				 }			   
		  	} 
		  	objeto.style.border="1px solid #6D94C7";
			return 1;
		}
		
		function comprobar_dni_cif(objeto)
		{		
			dni_cif=objeto.value;
			if (!/^\d{9}$/.test(dni_cif)) 
			{
				var inicial=dni_cif.charAt(0);
				
				//vamos a comprobar que sea un numero o una letra
				if(!/^\d{1}$/.test(inicial))
				{//es un numero y hay que comprobar que es cif				
					if(!comprobar_cif(dni_cif))
					{						
						objeto.style.border="1px solid #E05C6C";
						alert('El CIF No Es Válido');						
					}
					else
					{						
						objeto.style.border="1px solid #6D94C7";
						return 0;
					}
				}
				else
				{
					//es una letra y hay que comprobar dni
					var numero=dni_cif.substring(0,8);
					var letra=dni_cif.substring(8,9);
					letra=letra.toUpperCase();
					
					
					var letra_calculada=calcular_letra_dni(numero);
					if(letra!=letra_calculada)
					{
						objeto.style.border="1px solid #E05C6C";				
						alert('El DNI No Es Válido');
						
					}
					else
					{
						
						objeto.style.border="1px solid #6D94C7";
						return 1;
					}
					
				}
			}
			else
			{
				objeto.style.border="1px solid #E05C6C";
				alert('El DNI/CIF Introducido puede no ser Válido');
				return 1;
			}
			
			
		}
		
		
		function comprobar_cif(cif)
		{
			cif=cif.toUpperCase();
			var letra=cif.substring(0,1);
			var digito=cif.substring(1,8);
			
			var control=cif.substring(8,9);
			
			var conjunto_letra="ABCDEFGHPQSKLMX";
			var total=conjunto_letra.length;
			var encontrado=0;
			//vamos a comprobar que la letra este en el conjunto de letras
			for (var i=0;i<total;i++)
			{
				if(letra==conjunto_letra.charAt(i))
				{
					encontrado=1;
				}
			}
			if(encontrado==0)
			{
				return false;
			}
			else//seguimos haciendo las comparaciones oportunas
			{
				
				var sumaA=0;
				var sumaB=0;
				
				for(var i=0;i<7;i++)
				{
					
					if (i%2!=0)
					{  //SUMAMOS LAS CIFRAS PARES
						sumaA=Number(sumaA)+Number(digito.substr(i,1));
						
  				    }
  				    else
					{//SUMAMOS LOS IMPARES MULTIPLICADOS POR DOS Y SUMAMOS LOS DIGITOS OBTENIDOS
						var num_impar=digito.substr(i,1);
						
						var auxnum=(digito.substr(i,1)*2);
						var result=(((auxnum/10)-((auxnum%10)/10))+Number(auxnum%10));
						sumaB=Number(sumaB)+Number(result);
						
					}
				}
				
				
				
				var sumaC=Number(sumaA)+Number(sumaB);
				var sumaD=10-(sumaC%10);//RESTAMOS 10 AL ULTIMO DIGITO DE SUMAC
				
				
				if(sumaD.strlen==2)
				{
					sumaD=(sumaD%10);
				}
				
			
				if(letra!='X' && letra!='P')//NO ES  DE LA CATEGORIA X P
				{
					if(sumaD!=control)
					 {
						  return false;
					 }
					else
					{
						return true;
					}
				}
				else//es de la categoria xp
				{
					 array_letras=new Array
					 array_letras[65]="A";array_letras[66]="B";array_letras[67]="C";
					 array_letras[68]="D";array_letras[69]="E";array_letras[70]="F";
					 array_letras[71]="G";array_letras[72]="H";array_letras[73]="I";
					 array_letras[74]="J";array_letras[75]="K";array_letras[76]="L";
					 array_letras[77]="M";array_letras[78]="N";array_letras[79]="O";
					 array_letras[80]="P";array_letras[81]="Q";array_letras[82]="R";
					 array_letras[83]="S";array_letras[84]="T";array_letras[85]="U";
					 array_letras[86]="V";array_letras[87]="W";array_letras[88]="X";
					 array_letras[89]="Y";array_letras[90]="Z";
					 
					 var digitoxp=Number(64)+Number(sumaD);
					
					 
					 if(array_letras[digitoxp]==control)
					  	{	
					  		return true;
						}
					  else {
					  		 return false;
					 	   }
				}
			}
		}
		
		function calcular_letra_dni(numero_dni)
		{
			var juego_caracteres="TRWAGMYFPDXBNJZSQVHLCKET";
			var posicion=numero_dni%23;
			var letra=juego_caracteres.charAt(posicion);
			return letra;
		}
