
function AnalizarTabla(tabla) {
// recorre todos los objetos dentro de la tabla y se fija si tiene entradas invalidas.
// para que no analice una fila o una celda, agregarle el atributo analizar="no"

var fila,celda,i,j,k;
//alert("yes");
  for (i=0;i<tabla.firstChild.childNodes.length;i++) {      
    fila = tabla.firstChild.childNodes[i];
    if (!(fila.analizar) || ((fila.analizar) && (fila.analizar == "si")))
      for (j=0;j<fila.childNodes.length;j++) {
        celda = fila.childNodes[j];              
        if (!(celda.analizar) || ((celda.analizar) && (celda.analizar == "si")))
          for (k=0;k<celda.childNodes.length;k++) {            
            if (!(AnalizarContenido(celda.childNodes[k])))            
               return false;
          }
      }
  }
  return true;
}

//------------------------------------------------------------------------------------

function AnalizarContenido(objeto) {
var contenido, i;    
    //alert(objeto.nodeName);
    switch (objeto.nodeName) {
      case "#text":
         return true;
      case "IMG":
         return true;
      case "INPUT":
         return(Analizar(objeto));
      case "TEXTAREA":
         return(Analizar(objeto));  
      case "TABLE":         
         return (AnalizarTabla(objeto));
      default: //Analizo posibles encadenamientos dentro de la celda          
          for (i=0;i<objeto.childNodes.length;i++) {             
             if (!(AnalizarContenido(objeto.childNodes[i])))
                 return false;
          }       
          return true;
    }
}

//------------------------------------------------------------------------------------

function Analizar(objeto) {
 eval("contenido = document.all." + objeto.name);                                          
 if (!(EntradaOK(contenido))) {         
    if (objeto.etiqueta)
       alert("El campo " + objeto.etiqueta + " posee caracteres inválidos");
    else
       alert("Se han encontrado caracteres inválidos.");
    return false; }         
 return true;
}

function EntradaOK(objeto) {
  // Funcion que analiza caracteres invalidos en el contendio de un objeto
  
    lOk = true;        
    if (objeto.value.indexOf("'") != -1) {
         lOk = false }
    
    return lOk;
  }

