function TieneDatos(dato)
{
   if (dato=="") return(false);
   var espacios, caracter;
   var i;	
   espacios = 0;
   for (i==0;i<=(dato.length - 1);i++)
   {
      caracter=dato.charAt(i);
      if (caracter==" " || caracter=="\t" )
         espacios=espacios++;
   }   
   if (espacios==dato.length )
   {
      return(false);     
   }
   return(true);
}


function TieneMinimaLongitud(dato,minimo)
{
   if (dato=="") return(false);
   var espacios, caracter;
   var i;	
   espacios = 0;
   for (i==0;i<=(dato.length - 1);i++)
   {
      caracter=dato.charAt(i);
      if (caracter==" " || caracter=="\t" )
         espacios=espacios++;
   }   
   if (espacios==dato.length )
   {
      return(false);     
   }
   if (minimo > dato.length)
   {
      return(false);     
   }
   return(true);
}

function ValidarTexto(obj)
{
   var caracter;
   var texto;
   var i;
   texto = obj.value;
   if (!TieneDatos(texto)) 
   {
      obj.focus();
      return(false);
   } 
   for (i=0;i<=(texto.length -1); i++)
   {
       caracter = texto.charAt(i);
       if (! (((caracter >= "a") && (caracter <= "z")) || ((caracter >= "A") && (caracter <= "Z")) ||
          (caracter == "_") || (caracter == "ñ") || (caracter == "Ñ") ||(caracter == "ª") || (caracter == "º") ||
          (caracter == "á") || (caracter == "é") || (caracter == "í") || (caracter == "ó") || (caracter >= "ú") ||
          (caracter == "Á") || (caracter == "É") || (caracter == "Í") || (caracter == "Ó") || (caracter >= "Ú") ||
          (caracter == "ü") || (caracter == ",") || (caracter == ".") || (caracter == "/") || (caracter == "'")  ||
          (caracter == "(") || (caracter == ")") || (caracter == " ") || (caracter == "&") ))
       {
             obj.focus();
             return(false); 
       }
   }
       return(true); 
}
function ValidarEnteroObjeto(obj)
{
   	var entero;
   	var i;
   	entero = obj.value;
   	if (!TieneDatos(entero)) 
   	{
   		obj.focus();
   		return(false);
  	}
	return(ValidarEnteroTexto(entero));
}

function ValidarAlfanumericoTexto(dato)
{
   var caracter;
   var i;
     
   for (i=0;i<=(dato.length -1); i++)
   {
       caracter = dato.charAt(i);
       if (! (((caracter >= "a") && (caracter <= "z")) || ((caracter >= "A") && (caracter <= "Z")) ||
       	  ((caracter >= "0") && (caracter <= "9")) ||
          (caracter == "_") || (caracter == "ñ") || (caracter == "Ñ") ||(caracter == "ª") || (caracter == "º") ||
          (caracter == "á") || (caracter == "é") || (caracter == "í") || (caracter == "ó") || (caracter >= "ú") ||
          (caracter == "Á") || (caracter == "É") || (caracter == "Í") || (caracter == "Ó") || (caracter >= "Ú") ||
          (caracter == "ü") || (caracter == ",") || (caracter == ".") || (caracter == "/") || (caracter == "&") ||
          (caracter == "(") || (caracter == ")") || (caracter == " ") || (caracter == "´") || (caracter == "-") ))
       {
             return(false); 
       }
   }
       return(true); 
}

function ValidarEnteroTexto(dato)
{
   var caracter;
   var i;
   for (i=0;i<=(dato.length - 1); i++)
   {
       caracter = dato.charAt(i);
       if (! ((caracter >= "0") && (caracter <= "9"))) 
          return(false); 
   }
   return(true);
}
function ValidarCorreo(obj)
{
   var correo;
   correo = obj.value;
   if (!TieneDatos(correo)) 
   {
      obj.focus();
      return(false);
   }     
   var arroba1= correo.indexOf("@");
   var arroba2= correo.lastIndexOf("@");

   if ( (arroba1 == -1) || (arroba1 != arroba2) )
   {
      obj.focus();
      return(false); 
   }
   var strAntes, strDespues;
   strAntes =correo.substring(0, arroba1);
   strDespues =correo.substring((arroba1+1),correo.length);
   if ((strAntes.length == 0) || (strDespues.length == 0))
   {
      obj.focus();
      return(false); 
   }	
   var punto = correo.indexOf(".");
   strDespues =correo.substring((punto+1),correo.length);
   if (strDespues.length > 3)
   {
      obj.focus();
      return(false); 
   }	
   if ( (punto - arroba1) == 1)
   {
      obj.focus();
      return(false); 
   }	

   return(true);
}
function ValidarDecimal(obj)
{
   var decimal;
   decimal=obj.value;
   if (!TieneDatos(decimal))
   {
      obj.focus();
      return(false);
   }
   var coma1, coma2;
   coma1= decimal.indexOf(",");
   coma2= decimal.LastindexOf(",");
   if (!(coma1 == coma2))
   {
      obj.focus();
      return(false);  
   }
   var parteEntera, parteDecimal;
   parteEntera = decimal.substring(0,coma1);
   parteDecimal = decimal.substring((coma1+1), decimal.length);
   if ((!ValidarEntero(parteEntera)) || (!ValidarEntero(parteDecimal)))
        {
           obj.focus();
           return(false);
        }
}
function Bisiesto(nAnio)
{
	if(((nAnio % 4 == 0) && nAnio % 100 != 0) || nAnio % 400 == 0 )
  		return (true);
	return(false);
}
function ValidarNif(obj)
{
   var nif;
   nif = obj.value;
   if( nif.length < 8)
   {
      obj.focus();
      return (false);
   } 
   if ((!ValidarEnteroTexto(nif.substring(0,nif.length -1 ))) || ValidarEnteroTexto(nif.substring((nif.length - 1),nif.length)) )
   {
      obj.focus();
      return (false);
   }
   return(true);
}
function ValidarCif(obj)
{
   var cif;
   cif = obj.value;
   if( cif.length < 8)
   {
      obj.focus();
      return (false);
   } 
   if (ValidarEnteroTexto(cif.substring(0,1)) || (!ValidarEnteroTexto(cif.substring(1,cif.length))))
   {
      obj.focus();
      return (false);
   }
   return(true);
}

function ValidarFechasSelect(intDia, intMes, intAno)
{
   var correcto = true;
   if ((intMes == 4) || (intMes == 6) || (intMes == 9) || (intMes == 11))
   {
      if (intDia>30) 
         correcto = false;  
   }
   else
   {    
      if (intMes != 2 )
      {
         if (intDia>30) 
            correcto = false;  
      }
      else
      {
        if (Bisiesto(intAno)) 
        { 
           if (intDia > 29)
              correcto = false;  
        }
        else
           if (intDia>28) 
              correcto = false;  
      }
   }
   if (!correcto)
      return(false);
   else
      return(true);
}

function ValidarFecha(obj,stPermiteVacio)
{
	var stFecha = obj.value;
	var bTieneDatos = TieneDatos(stFecha);
   	if (stPermiteVacio!="S")
   	{
		if (!bTieneDatos)
			return(false);
   	}	

   	if (bTieneDatos)
   	{   	
		var nSep = 0;
   		var nConta;
   		var stCaracter;
   		var stSeparador="\\/-";   	

	   	for (nConta=0;nConta<=(stFecha.length - 1); nConta++)
	   	{
	       	stCaracter=stFecha.charAt(nConta);
	       	if (!ValidarEnteroTexto(stCaracter)&& !(stSeparador.indexOf(stCaracter)>=0)) 
	          	return(false); 
			if(stSeparador.indexOf(stCaracter)>=0)
				nSep++        
	   	}
		if (nSep!=2)   	
	    	return(false); 
	   	
	   	var nPos1;
	   	for (nConta=0;nConta<=(stSeparador.length - 1); nConta++)
	   	{
	   		nPos1=stFecha.indexOf(stSeparador.charAt(nConta));
	   		if (nPos1>=0)
	   			break
	   	}
	   	var nPos2;
	   	for (nConta=0;nConta<=(stSeparador.length - 1); nConta++)
	   	{
	   		nPos2=stFecha.indexOf(stSeparador.charAt(nConta),nPos1+1);
	   		if (nPos2>=0)
	   			break
	   	}   
	   	var nDia=parseInt(stFecha.substring(0,nPos1));
	   	var stMes = stFecha.substring(nPos1+1,nPos2); 
	   	if (stMes=="08"||stMes=="09")
	   	{
	   		if (stMes=="08")
	   			var nMes=8;	   		
	   		else
	   			var nMes=9;	   			   		
	   	}
	   	else
	   	{
	   		var nMes=parseInt(stFecha.substring(nPos1+1,nPos2));
	   	}		    	   	
	   	var nAnio=parseInt(stFecha.substring(nPos2+1,10));
	   	
	   	if (nAnio<0||nAnio>9999)
	    	return(false);
	   	if (nMes<1||nMes>12)
	    	return(false);
	   	if ((nDia<0||nDia>31)||(nMes==4&&nDia>30)||(nMes==6&&nDia>30)||
	   		(nMes==9&&nDia>30)||(nMes==11&&nDia>30)||
			(nMes==2&&Bisiesto(nAnio)&&nDia>29)||
			(nMes==2&&!Bisiesto(nAnio)&&nDia>28)
			)
	    	return(false);
   	}
   	
   	return(true);
}
function RetiraAcentos(dato) {
	var Acentos = "áàãââÁÀÃÂéêÉÊíÍóõôÓÔÕúüÚÜçÇabcdefghijklmnopqrstuvxwyz";
   	var Traducir= "AAAAAAAAAEEEEIIOOOOOOUUUUCCABCDEFGHIJKLMNOPQRSTUVXWYZ";
   	var Posic, Carac;
   	var TempLog="";
   	for (var i=0; i < dato.length; i++)
   	{
   		Carac=dato.charAt(i);
   		Posic =Acentos.indexOf(Carac);
   		if (Posic>-1)
	  		TempLog+=Traducir.charAt(Posic);
   		else
      		TempLog+=dato.charAt(i);
   	}
	return(TempLog);
}


function ValidarFormBusqueda() {
      	if (!TieneDatos(document.frmBusqueda.cNombre.value) && !TieneDatos(document.frmBusqueda.cFecDes.value) && 
      		!TieneDatos(document.frmBusqueda.cFecHas.value) && !TieneDatos(document.frmBusqueda.cUltimos.value))
      	{
                	alert("Debe introducir un nombre de entidad, un rango de fechas, o bien, los últimos días a consultar.");
                	document.frmBusqueda.cNombre.focus();
                	document.frmBusqueda.cNombre.select();
                	return(false);
      	}
      	if (TieneDatos(document.frmBusqueda.cFecDes.value) && TieneDatos(document.frmBusqueda.cFecHas.value) &&
      		TieneDatos(document.frmBusqueda.cUltimos.value) )
      	{
                	alert("Debe especificar rango de fechas o comunicados en los últimos n días, pero no ambos.");
                	document.frmBusqueda.cFecDes.focus();
                	document.frmBusqueda.cFecDes.select();
                	return(false);
      	}
      	if ((TieneDatos(document.frmBusqueda.cFecDes.value) && TieneDatos(document.frmBusqueda.cUltimos.value) ) || 
      		(TieneDatos(document.frmBusqueda.cFecHas.value) && TieneDatos(document.frmBusqueda.cUltimos.value) ))
      	{
                	alert("Debe especificar rango de fechas o comunicados en los últimos n días, pero no ambos.");
                	document.frmBusqueda.cFecDes.focus();
                	document.frmBusqueda.cFecDes.select();
                	return(false);
      	}         			
      	if (!ValidarFecha(document.frmBusqueda.cFecDes, "S"))
      	{
                	alert("La fecha introducida en 'Fecha desde' no es válida.");
                	document.frmBusqueda.cFecDes.focus();
                	document.frmBusqueda.cFecDes.select();
                	return(false);
      	}
      	if (!ValidarFecha(document.frmBusqueda.cFecHas, "S"))
      	{
                	alert("La fecha introducida en 'Fecha hasta' no es válida.");
                	document.frmBusqueda.cFecHas.focus();
                	document.frmBusqueda.cFecHas.select();
                	return(false);
      	}
      	if (!ValidarEnteroTexto(document.frmBusqueda.cUltimos.value))
      	{
                	alert("El valor introducido en 'Últimos días' no es válido.");
                	document.frmBusqueda.cUltimos.focus();
                	document.frmBusqueda.cUltimos.select();         			         			
                	return(false);
      	}
       	if (TieneDatos(document.frmBusqueda.cNombre.value))
      		if (TieneMinimaLongitud(document.frmBusqueda.cNombre.value,3))
      		{
     		     	document.frmBusqueda.cNombre.value = RetiraAcentos(document.frmBusqueda.cNombre.value);
      			if (!ValidarAlfanumericoTexto(document.frmBusqueda.cNombre.value))
      			{
                		alert("El valor introducido en 'Denominación' no es válido.");
                		document.frmBusqueda.cNombre.focus();
                		document.frmBusqueda.cNombre.select();         			         			
                		return(false);
      			}
      		}
      		else
      		{
      			alert("Debe introducir al menos tres caracteres en el campo 'Denominación'.");
                	document.frmBusqueda.cNombre.focus();
                	document.frmBusqueda.cNombre.select();         			         			
                	return(false);
      		}		
      	return(true);   
}

function ValidarString(obj) {
   var texto;
   
   	texto = obj.value;
       	if (TieneDatos(texto))
      		if (TieneMinimaLongitud(texto,3))
      		{
      			texto = RetiraAcentos(texto);
      			obj.value = texto
      			if (!ValidarAlfanumericoTexto(texto))
      			{
                		alert("La información del campo texto es incorrecta.");
                		obj.focus();
                		obj.select();         			         			
                		return(false);
      			}
      		}
      		else
      		{
      		alert("Debe introducir al menos tres caracteres en el campo texto.");
                obj.focus();
                obj.select();         			         			
                return(false);
      		}		
      	else
      	{
                alert("Debe introducir información en el campo texto.");
                obj.focus();
                obj.select();         			         			
                return(false);
      	}     	
      	return(true);   
} 
   
function InitFormBusqueda()
{
	document.frmBusqueda.cNombre.value = "";
	document.frmBusqueda.cFecDes.value = "";
	document.frmBusqueda.cFecHas.value = "";
	document.frmBusqueda.cUltimos.value = "";
}
			
			
			
			