  // Regresa una cadena después de eliminados los espacios en la misma.
  /*
  	Parámetro		Descripción
	cadena			Valor de la cadena.
  */
  function trim(cadena){	  	
	   /* Autor: Jesus Parra (jparra@programmer.net)*/
	   for(i=0; i<cadena.length; ){
    		if(cadena.charAt(i)==" ")
		      cadena=cadena.substring(i+1, cadena.length);
		    else
			    break;
	   }
	   for(i=cadena.length-1; i>=0; i=cadena.length-1){
		    if(cadena.charAt(i)==" ")
		      cadena=cadena.substring(0,i);
		    else
	  	  		break;
	   }
	   return cadena;
  }

  // Regresa la longitud de una cadena después de eliminados los espacios en la misma.
  /*
  	Parámetro		Descripción
	cadena			Valor de la cadena.
  */
  function trim_long(cadena){
	   /* Autor: Jesus Parra (jparra@programmer.net)*/
    	for(i=0; i<cadena.length; ){
		    if(cadena.charAt(i)==" ")
		      cadena=cadena.substring(i+1, cadena.length);
		    else
		      break;
	   }

	   for(i=cadena.length-1; i>=0; i=cadena.length-1){
		    if(cadena.charAt(i)==" ")
		      cadena=cadena.substring(0,i);
		    else
		      break;
	   }
	   return cadena.length;
  }
  

/**<p> Titulo: validaNmeros</p>
  *<p> Descripción: Valida todas los numeros  del 0 al 9</p>
  *<p> Copyright: Copyright (c) Enero 2004 </p>
  *<p> Compañia: Gobierno del Estado de Hidalgo. </p>
  *@ Autor </p>
      *@ Espinosa García Belem </p>
	  *@ Lazcano Mejía Nancy Candy </p>
	  *@ López Guerrero Ignacia </p>
  *@ Version: 1.0 </p>
  */
function validaNumeros(numeros)
  {

    var checkOK = "0123456789";
    var checkStr = numeros;
    var allValid = true;
    for (i = 0;  i < checkStr.length;  i++)
    {
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
       {
         if (ch == checkOK.charAt(j))
           break;
       }
      if (j == checkOK.length)
      {
        allValid = false;
        break;
      }
    }
    if (!allValid)
    {
      alert("Ha escrito letras en espacios donde deben ir sólo números");
      return (false);
    }
    else
    {
      return (true);
    }
}

/**<p> Titulo: validaLetras</p>
  *<p> Descripción: Valida todas las letras en mayuscula y minuscula</p>
  *<p> además de las vocales acentuadas</p>  
  *<p> Copyright: Copyright (c) Enero 2004 </p>
  *<p> Compañia: Gobierno del Estado de Hidalgo. </p>
  *@ Autor </p>
      *@ Espinosa García Belem </p>
	  *@ Lazcano Mejía Nancy Candy </p>
	  *@ López Guerrero Ignacia </p>
  *@ Version: 1.0 </p>
  */

function validaLetras(variable, mensaje)
  {

    var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ";
	var checkOK = checkOK + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
    var checkStr = variable;
    var allValid = true;

    for (i = 0;  i < checkStr.length;  i++)
    {
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
       {
         if (ch == checkOK.charAt(j))
           break;
       }
      if (j == checkOK.length)
      {
        allValid = false;
        break;
      }
    }
    if (!allValid)
    {
        alert("Debe escribir sólo letras en el campo " + mensaje);
        return (false);
    }
    else
    {
        return (true);
    }

}

/**<p> Titulo: validaAbecedario </p>
  *<p> Descripción: Valida solamente letras mayusculas.</p>
  *<p> Copyright: Copyright (c) Enero 2004 </p>
  *<p> Compañia: Gobierno del Estado de Hidalgo. </p>
  *@ Autor </p>
      *@ Espinosa García Belem </p>
	  *@ Lazcano Mejía Nancy Candy </p>
	  *@ López Guerrero Ignacia </p>
  *@ Version: 1.0 </p>
  */

function validaAbecedario(variable)
  {

		//Cadena con caracteres validos
    var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    var checkStr = variable.toUpperCase();
    var allValid = true;

    for (i = 0;  i < checkStr.length;  i++)
    {
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
       {
         if (ch == checkOK.charAt(j))
           break;
       }
      if (j == checkOK.length)
      {
        allValid = false;
        break;
      }
    }
    if (!allValid)
    {
        alert("Ha escrito números o caracteres especiales en espacios donde deben ir sólo letras");
        return (false);
    }
    else
    {
        return (true);
    }

}  


  // Permite que se tecleen sólo caracteres numéricos.
  /*
  	Parámetro		Descripción
	e				Evento(keypress)
  */  
  function SoloNum(e)
  {
	   var correctos = new Array("0","1","2","3","4", "5","6","7","8","9")
	   var estado=false;
	   var codigoTecla, cadenaTecla;
	   estado=false;

	   if(document.all){
	    codigoTecla = event.keyCode
	    cadenaTecla = (String.fromCharCode(event.keyCode));
	   }
	   else if(document.layers){
	    codigoTecla = e.which
	    cadenaTecla = String.fromCharCode(e.which);
	   }
	   else if(document.getElementById){
	    codigoTecla = (window.Event) ? e.which : e.keyCode;
	    cadenaTecla=(String.fromCharCode(codigoTecla));
	   }

	   for(i=0;i<correctos.length;i++){
		    if(cadenaTecla==correctos[i])
		      estado=true;
	   }

	   if(estado==false){
			if(document.all)
		       event.returnValue = false;
		    else
		       return false;
   	   }
  }

  // No permite que se haga clic derecho sobre la pagina.
  function click(e) {
  /*
  	Parámetro		Descripción
	e				Evento(onclick)
  */	  
	   var message="El botón derecho del mouse se encuentra desactivado";
	   if (document.all) {
		     if (event.button == 2) {
		       alert(message);
		       return false;
		     }
	   }
	   if (document.layers){
    		 if (e.which == 3) {
		       alert(message);
		       return false;
		     }
	   }
  }

  // Convierte una cadena a mayúsculas.
  /*
  	Parámetro		Descripción
	cadena			Valor de la cadena
  */
  function mayusculas(cadena)
  {
    var i = 0;
    var cadaux = "";
    cadena = cadena.toUpperCase();
    if ((cadena != "") && (cadena != "-"))
    {
      if (cadena.charAt(0) == " ")
      {
        cadena = cadena.substring(1,cadena.length);
      }
      if (cadena.charAt(cadena.length-1) == " ")
      {
        cadena = cadena.substring(0,cadena.length-1);
      }
      while (i<cadena.length)
      {
        switch (cadena.charAt(i))
        {
          case "Á" : cadaux = cadaux + "A"; break;
          case "É" : cadaux = cadaux + "E"; break;
          case "Í" : cadaux = cadaux + "I"; break;
          case "Ó" : cadaux = cadaux + "O"; break;
          case "Ú" : cadaux = cadaux + "U"; break;
          default : cadaux = cadaux + cadena.charAt(i); break;
        }
        i++;
      }
    }
    return(cadaux);
  }  

  // Abre una ventana emergente
  /*
  	Parámetro		Descripción
	URL				Nombre del archivo que se va a llamar(junto con la ruta)
	w				Ancho que tendrá el popup
	h				Alto que tendrá el popup
	nombre			Título de la ventana popup
  */
  function PopUp(URL, w, h, nombre){
    day = new Date();
    id = day.getTime();
	if(nombre == '') nombre = id;
    eval("page" + id + " = window.open(URL, '" + nombre + "', 'toolbar=0, scrollbars=1,location=0,statusbar=0, menubar=0, resizable=0, width=" + w + ", height="+ h +",left = 0,top = 0');");
  }  
  
  // Habilita o deshabilita un grupo de radiobutton
  /*
  	Parámetro		Descripción
	iDeshab			1 = deshabilitar
					0 = habilitar
	rdBtnGpo		Control del formulario tipo radiobutton
  */
  function HabDesRdBtn(iDeshab, rdBtnGpo){
	  for(i=0;i<rdBtnGpo.length;i++){
	  	rdBtnGpo[i].disabled = iDeshab;
	  }
  }
  
  
  // Muestra el cuadro de diálogo de windows para imprimir una pagina.
  
  function imprimir() {
    if (window.print)
      window.print()
    else
      alert("Disculpe, su navegador no soporta esta opción.");
  }  
  
  // Valida que las fechas de un rango sean correctas.
  function ValidaFechas(sAnioIni, sMesIni, sDiaIni, sAnioFin, sMesFin, sDiaFin){
    var dtFechaActual = new Date();	
	
	var sFechaIni = sMesIni + "/" + sDiaIni + "/" + sAnioIni;	
	var sFechaFin = sMesFin + "/" + sDiaFin + "/" + sAnioFin;
    
	if(Date.parse(sFechaFin) > dtFechaActual){
      alert("La fecha final no puede ser mayor a la fecha actual.");
	  return false;
	}
	if(Date.parse(sFechaIni) > Date.parse(sFechaFin)){
	  alert("La fecha inicial no puede ser mayor a la fecha final.");
      return false;
	}

	return true;
  }  