 //<![CDATA[
function Quita_blancos(valor)
{
var no_espacios;
var longitud=valor.length;

 for (i=0;i<longitud;i++)
 {
   if (valor.charAt(i)!=" " && valor.charAt(i)!="\t") //--> Espacio blanco y tabulador
	{ if ( (i==0) || (typeof no_espacios == "undefined" ) )
	 { no_espacios=valor.charAt(i);}
		else
	 { no_espacios=no_espacios + valor.charAt(i);}
	}
 }
	   if (typeof no_espacios == "undefined")
		  { return(""); }
	   else
	    { return (no_espacios); }
 }
var mifecha = new Date();
var diames = mifecha.getDate();
var mes = mifecha.getMonth();
var mianio = mifecha.getYear();
hoy=diames+"/"+mes+"/"+mianio; // --> Declaramos una variable global q contiene la fecha de hoy

	   function mayor_edad(edad)
			{
			 var digitos=hoy.split("/");

			 var dia=new Number(digitos[0]);
			 var mes=new Number(digitos[1]);
			 var anio=new Number(digitos[2]);
			 with (document.Formulario_validacion)
			 {
			  var dia1=new Number(dia.value);
			  var mes1=new Number(mes.value);
			  var anio1=new Number(anio.value);
			 }

				 if ( (anio-anio1)>edad )
				  {	return true; }
				 if ( (anio-anio1)==edad && (mes-mes1)>0 )
				  {	return true; }
				 if ( (anio-anio1)==edad && (mes-mes1)==0 )
				  {
				  	if ((dia1-dia)<=0 )
				       { return true; }
				  }
			  //alert("menor de edad");
			  return(false);
			}
function Es_Natural(valor)
{
	resultado=true;
	for(i=0;i<valor.length && resultado==true;i++)
	{
		car=valor.substr(i,1);
	//	alert(car);
		if(car!="0" && car!="1" && car!="2" && car!="3" && car!="4" && car!="5" &&car!="6" && car!="7" && car!="8" && car!="9")
		{resultado=false;
		//alert("**************"+car+"**************");
		}
	}
	return(resultado);
}

	function Letra_Dni(Dni)
      {
       Letr = new Object();
       Letr[0]="T"; Letr[1]="R";
       Letr[2]="W"; Letr[3]="A";
       Letr[4]="G"; Letr[5]="M";
       Letr[6]="Y"; Letr[7]="F";
       Letr[8]="P"; Letr[9]="D";
       Letr[10]="X"; Letr[11]="B";
       Letr[12]="N"; Letr[13]="J";
       Letr[14]="Z"; Letr[15]="S";
       Letr[16]="Q"; Letr[17]="V";
       Letr[18]="H"; Letr[19]="L";
       Letr[20]="C"; Letr[21]="K";
       Letr[22]="E";
       Letra_NIF="";
       /*for(i=1;i<=8;i++)
       {
       	if(isNaN(Dni.charAt(i)))
       	{
       		return ;
       	}
       }*/
       	valor=parseInt(Dni);
       	subvalor=(valor%23);
       	subvalor=(valor-subvalor)/23;
       	subvalor=subvalor*23;
       	valor = valor -subvalor;
       	Letra_NIF=Letr[valor];
       	return(Letra_NIF);
       }
function es_numero(car)
{
 var NUMEROS="0123456789";
 return NUMEROS.indexOf(car)>=0;
}
function es_bisiesto(anio)
{
 if ((( anio % 4==0) && anio % 100 !=0 ) || anio % 400 == 0)
  { return true; }
 return false;
}


	function efecto_visual()
	{

      	for (var i=0; i<document.forms.length; i++ ) //Recorremos los distintos formularios de la pagina
      	{
      	 var formulario=document.forms[i];
      	 var elemento;
      	 var tipo_elemento;

      	 for(var z=0; z < formulario.elements.length; z++) //Recorremos los distintos elementos de cada formulario
      	 {
      	  elemento=formulario.elements[z];
      	  tipo_elemento=elemento.type;
      	  //alert(tipo_elemento);
      	  excluidos="button-radio-submit-reset-checkbox-hidden-undefined";
      	  //Solo nos quedamos con los elementos que no estan en la lista:
      	  if ( excluidos.indexOf(tipo_elemento)==-1  )
      	  {
      	   elemento.onfocus=function(){this.className="campo_actual";  }
      	   elemento.onblur=function(){this.className="campos";  }
      	  }
      	 }

      	}

	}

window.onload=function(){ efecto_visual();}


function completa_url(direccion){
 var url = direccion;
 var propiedades = "toolbar=1, location=0, directories=0, status=1,menubar=1,resizable=1,scrollbars=1";
 propiedades = propiedades + ",alwaysRaised=1,width=950px,height=600px,left=60px,top=5px";
 window.open(url,"modulo_cita",propiedades);
}

function Control_idf(nuss,id)
  {

		   if (document.Formulario_validacion.id_us.value.length==0 &&
		       document.Formulario_validacion.dni.value.length==0 )
			 {
  			 alert("Para realizar la búsqueda debe introducir sus datos");
  			 return false;
			 }

		  // Quitamos los posibles espacios en blanco o tabuladores:
		  if (document.Formulario_validacion.id_us.value.length>0)
		  {
         document.Formulario_validacion.id_us.value=Quita_blancos(document.Formulario_validacion.id_us.value);
      }

		  if (document.Formulario_validacion.dni.value.length>0)
	    {
         document.Formulario_validacion.dni.value=Quita_blancos(document.Formulario_validacion.dni.value);
      }


		  // Si se ha introducido, comprobamos el DNI:
		  if (document.forms.Formulario_validacion.dni.value.length>0 && document.forms.Formulario_validacion.dni.value!="undefined")
		  {
		    if (!Control_Dni_idf(document.forms.Formulario_validacion.Tipo_Id.options[document.forms.Formulario_validacion.Tipo_Id.selectedIndex].value,document.forms.Formulario_validacion.dni.value))
		  	 {  return(false);  }
		  }
		  else   // Si no se introdujo le impedimos seguir,
		  {     //  cuando tiene 14 años o mas.
		    if (mayor_edad(14))
			{
			 document.Formulario_validacion.dni.value="";
		     	 alert("Debe introducir el número de su documento identificativo (DNI, pasaporte o similar).");
		     	 return(false);
			}
		  }


		   if (nuss.value.length!=12||nuss.value=="            ") /* ->12 espacios en blanco */
		    {
			  if (nuss.value.length==0)
			  { alert("Introduzca el número de la tarjeta sanitaria"); }
			  else
			  { alert("El Número de la Tarjeta Sanitaria debe tener 12 dígitos"); }
               return(false);
			}

           // Controlamos la Fecha de Nacimiento:
		   if (!comprueba_fecha())
		     { return(false); }


			var id1=nuss.value.substr(0,2);
			var id2=nuss.value.substr(2,8);
			var id3=nuss.value.substr(10,2);

	    	if(id1)
	    	{
/*			 if ((String(id1).toUpperCase()=="AN") )
			 { // Si como NUSS tiene un NUSS_PROVISIONAL no le dejamos entrar:
			   alert("Para acceder a esta utilidad debe disponer de Tarjeta Sanitaria de Andalucía");
			   return (false);
			 }*/

	    	if((!id1.match(/^(\s)*$/)) && (!id1.match(/^(\s)*$/)) && (!id1.match(/^(\s)*$/)))
	    	{
		    	if(!(id1=="\0"))
		    	{
		    		if( (id1>0) || (String(id1).toUpperCase()=="AN") )
		    		{
		    			/*if(String(id1).toUpperCase() != "AN")
		    			{*/
			    			if(String(id2).length<8)
			    			{
			    				for(i=String(id2).length;i<8;i++)
			    				{
			    					id2e= "0" + id2.value;
			    				}
			    			}
			    			if((id2).charAt(0)=="0")
			    			{ if (String(id1).toUpperCase()=="AN")
								 { provincia=60 * 10000000; }
			    			  else
							     { provincia=id1 * 10000000; }
			    			}
			    			else
			    			{ if (String(id1).toUpperCase()=="AN")
								  { provincia=60 * 100000000; }
			    			  else
			    				  { provincia=id1 * 100000000 ;}
			    			}
			    			dividendo=Number(provincia) + Number(id2);
			    			divisor=97;
			    			resto=dividendo%divisor;
			    			if(resto <10) resto="0" + resto;
			    			if(id3.match(/^(\s)*$/))
			    			{
			    					id3=resto;
			    			}
			    			else
			    			{
			    				if(id3!=resto)
			    				{
			    					alert("El número de la Tarjeta Sanitaria introducido no es correcto");
									document.Formulario_validacion.id_us.focus();
			    					return(false);
			    				}
			    			}

			    			return(true);
			    		}
			    		else
			    		{ alert("El número de la Tarjeta Sanitaria introducido no es correcto");
		    			  document.Formulario_validacion.id_us.focus();
		    			  return(false);}
		    		/*}
			    	else
			    	{
				    		alert("El número de la Tarjeta Sanitaria introducido no es correcto");
				    		document.forms[0][0].focus();
				    		return(false);
			    	}*/
		    	}
		    	else
		    	{
		    		alert("El número de la Tarjeta Sanitaria introducido no es correcto");
		    		document.Formulario_validacion.id_us.focus();
		    		return(false);
		    	}
		    }
		    else
				{return(true);}
		   }
		   		    else
				{return(true);}

	    }
function Control_Dni_idf(tipo_identificador,identificador)
				{
			if(tipo_identificador!=1)
				 //|| identificador.match(/^(\s)*$/))
				{
					return(true);
				}
			else
			{    var dni=identificador;

						 if (dni)
					 {
						if(!Es_Natural(dni.charAt(dni.length-1)))//Si escribimos la letra
						{
							dni = dni.substr(0,dni.length-1) + dni.charAt(dni.length-1).toUpperCase();
							longitud=dni.length;
							i=0;
							while(dni.charAt(i)=="0" && i <longitud)
							{
								i++;
								//letra = Letra_Dni(dni.substr(1,dni.length-2));
							}
							letra = Letra_Dni(dni.substr(i,dni.length-(i+1)));
							if(dni.charAt(dni.length-1)!=letra || !Es_Natural(dni.substr(0,dni.length-1)))
							{
								alert("Dni incorrecto");
								if (document.forms.Formulario_validacion.dni)
								document.forms.Formulario_validacion.dni.focus();
										return(false);
							}
						 }
						else
						{
							if(dni.length<10 && Es_Natural(dni.substr(0,dni.length-1)))
							{
								longitud=dni.length;
								i=0;
								while(dni.charAt(i)=="0" && i<longitud)
								{
									i++;
									//letra = Letra_Dni(dni.substr(1,dni.length));
								}
								letra = Letra_Dni(dni.substr(i,dni.length-i));
								dni=String(dni) + String(letra);

							}
							else
							{
								alert("Dni incorrecto, debe haber como maximo 9 numeros");
								if(document.forms.Formulario_validacion.dni)
								document.forms.Formulario_validacion.dni.focus();
										return(false);
							}
						}
						for(i=dni.length;i<10;i++) dni = "0" + dni;
						if(document.forms.Formulario_validacion.dni)
						document.forms.Formulario_validacion.dni.value=dni;

						     return(true);
					}

			}
			return true;
			}

function comprueba_fecha()
{
 /*
 if ( (contenido.length==8)&&(contenido.indexOf("/")<0) )
 { // Si introduce 8 digitos pero ningun separador normalizamos la fecha:

   var conversion;
   var valores=new Array();
   valores[1]=contenido.substr(0,2); //-->Dia
   valores[2]=contenido.substr(2,2); // --> Mes
   valores[3]=contenido.substr(4,4); // --> Año
   conversion=valores.join("/");  //--> Pasamos el array a string (con separador).
   document.Formulario_validacion.fecha.value=conversion.substr(1,10);  //--> Quitamos el primer separador.
   contenido=conversion.substr(1,10);
 }
 */
 var contenido;
 with (document.Formulario_validacion)
 {
  contenido=dia.value+"/"+mes.value+"/"+anio.value;
 }

 var separador_fecha="/";
 var numero_separadores=0;

  if ((contenido.length==0))
  { alert("Debe indicar la fecha de nacimiento");
    return(false);}

  //Comprobacion de la sintaxis de la fecha:

  for (var t=0; t<contenido.length; t++)
  {
   var caracter=contenido.charAt(t);
   if (!es_numero(caracter) && caracter !=separador_fecha )
      {alert("Carácter no valido en la fecha de nacimiento");
       return(false);}
   if (caracter==separador_fecha)
       numero_separadores++
  }
    if (numero_separadores!=2)
    {alert("Fecha de nacimiento no válida");
     return(false);}

  //Comprobacion de la semantica de la fecha:
  var posicion_separador_1=contenido.indexOf(separador_fecha);
  var dia=contenido.substring(0,posicion_separador_1);
  var posicion_separador_2=contenido.indexOf(separador_fecha,posicion_separador_1+1);
  var mes=contenido.substring(posicion_separador_1+1,posicion_separador_2);
  var anio=contenido.substring(posicion_separador_2+1,10);
  if (anio.length!=4)
  	{
          alert("Año incorrecto en la fecha de nacimiento");
  	  return(false);
         }
  if ((mes < 1 ) || (mes > 12))
    {
      alert("Mes incorrecto en la fecha de nacimiento");
      return(false);
     }
  if (( dia < 1 || dia > 31) || (mes==4 && dia>30) ||
      (mes==6 && dia>30) || (mes==9 && dia>30) ||
      (mes==11 && dia>30) || (mes==2 && es_bisiesto(anio) && dia>29) ||
      (mes==2 && !es_bisiesto(anio) && dia>28))
    { alert("Dia incorrecto en la fecha de nacimiento");
      return(false); }
  return true;
}
 //]]>
