// Validacion de distintos tipos de campos de formulario:   
// - Texto no nulo   
// - Direccion de correo electronico (e-mail): alfanum@alfanum.alfanum[.alfanum], donde alfanum son caracteres alfanumericos u otros (pasados como parametro)   
  
/* dice si cadena es texto no vacio o no                                     */  
function vacio(cadena)   
  {                                    // DECLARACION DE CONSTANTES   
    var blanco = " \n\t" + String.fromCharCode(13); // blancos   
                                       // DECLARACION DE VARIABLES   
    var i;                             // indice en cadena   
    var es_vacio;                      // cadena es vacio o no   
    for(i = 0, es_vacio = true; (i < cadena.length) && es_vacio; i++) // INICIO   
      es_vacio = blanco.indexOf(cadena.charAt(i)) != - 1;   
    return(es_vacio);   
  }   
  
  
/* dice si cadena es un email (alfanum@alfanum.alfanum[.alfanum]) o no, don- */  
/* de alfanum son caracteres alfanumericos u otros                           */  
function email(cadena, otros)   
  {                                    // DECLARACION-INICIALIZACION VARIABLES   
    var i, j;                          // indice en cadena   
    var es_email = 0 < cadena.length;  // cadena es email o no   
    i = salta_alfanumerico(cadena, 0, otros); // INICIO   
    if(es_email = 0 < i)               // lee "alfanum*"   
      if(es_email = (i < cadena.length))   
        if(es_email = cadena.charAt(i) == '@') // lee "alfanum@*"   
          {   
            i++;   
            j = salta_alfanumerico(cadena, i, otros);   
            if(es_email = i < j)       // lee "alfanum@alfanum*"   
              if(es_email = j < cadena.length)   
                if(es_email = cadena.charAt(j) == '\.')   
                  {                    // lee "alfanum@alfanum.*"   
                    j++;   
                    i = salta_alfanumerico(cadena, j, otros);   
                    if(es_email = j < i) // lee "alfanum@alfanum.alfanum*"   
                      while(es_email && (i < cadena.length))   
                        if(es_email = cadena.charAt(i) == '\.')   
                          {   
                            i++;   
                            j = salta_alfanumerico(cadena, i, otros);   
                            if(es_email = i < j) // lee "alfanum@alfanum.alfanum[.alfanum]*"   
                              i = j;   
                          }   
                  }   
          }   
    return(es_email);   
  }   
  
/* salta caracteres alfanumericos y otros a partir de  cadena[i]  y  da  si- */   
/* guiente posicion                                                          */  
function salta_alfanumerico(cadena, i, otros)   
  {                                    // DECLARACION DE VARIABLES   
    var j;                             // indice en cadena   
    var car;                           // caracter de cadena   
    var alfanum;                       // cadena[j] es alfanumerico u otros   
    for(j = i, alfanum = true; (j < cadena.length) && alfanum; j++) // INICIO   
      {   
        car = cadena.charAt(j);   
        alfanum = alfanumerico(car) || (otros.indexOf(car) != -1);   
      }   
    if(!alfanum)                       // lee "alfanumX"   
      j--;   
    return(j);   
  }   
     
/* dice si car es alfanumerico                                               */  
function alfanumerico(car)   
  {   
    return(alfabetico(car) || numerico(car));   
  }   
  
  
/* dice si car es alfabetico                                                 */  
function alfabetico(car)               // DECLARACION DE CONSTANTES   
  {                                    // caracteres alfabeticos   
    var alfa = "ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuvxyz";   
    return(alfa.indexOf(car) != - 1);  // INICIO   
  }   
  
  
/* dice si car es numerico                                                   */  
function numerico(car)   
  {                                    // DECLARACION DE CONSTANTES   
    var num = "0123456789";            // caracteres numericos   
    return(num.indexOf(car) != - 1);   // INICIO   
  }   
  
  
// ejemplo validacion formulario   
function ValidaCampos(form)   
  {   
    if(vacio(form.Nombre.value))   
      alert("Por favor, rellene todos los datos.\n\nPlease, refill all the information.\n\nS'il vous plaît, remplissez toutes les données.");   
    else if(vacio(form.Telefono.value))   
      alert("Por favor, rellene todos los datos.\n\nPlease, refill all the information.\n\nS'il vous plaît, remplissez toutes les données.");   
    else if(vacio(form.Consulta.value))   
      alert("Por favor, rellene todos los datos.\n\nPlease, refill all the information.\n\nS'il vous plaît, remplissez toutes les données.");   
    else if(!email(form.email.value, "-_"))   
      alert("Por favor, rellene todos los datos.\n\nPlease, refill all the information.\n\nS'il vous plaît, remplissez toutes les données.");   
    else  
	  return(true);
      //sustituir esta linea por return(true) para hacer el submit de un formulario real   
      // alert("Los datos son correctos");   
    return(false);   
  }   


  
// Para cambiar entre las diferentes hojas de estilos

function setActiveStyleSheet(title) {
  var i, a, main;
  hojaestilo = title;    
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
  setActiveStyleSheetTit(title);
  setActiveStyleSheetLista(title);
}

function setActiveStyleSheetTit(title) {
  var i, a, main;
  for(i=0; (a = parent.miIFRAME.document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}
function setActiveStyleSheetLista(title) {
  var i, a, main;
  for(i=0; (a = parent.menu_doc.document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}
