

//selecciona de un select el valor que le digas
function selecciona(objeto,valor){
  var s,i;

  for (i=0;i<objeto.length;i++){
    s=objeto[i].value;
    if (s==valor){
      objeto.selectedIndex=i;
      break;   
    }  
  }
}

function ValidarCorreo(email) {
    var caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.";
    var i;
    var valido = true;
    var pos_arroba = email.indexOf("@");
    var pos_ultimo_punto = email.lastIndexOf(".");
    var email_minus = email.toLowerCase();
    var trozo;
    
    if (pos_arroba == -1) {
        return false;
    }
    if (email_minus.indexOf("usuario@servidor.es") != -1){
        return false;
    }
    if (pos_ultimo_punto == -1) {
        return false;
    }
    trozo = email.substring(0, pos_arroba);
    for(i=0;i<trozo.length;i++) {
        if (caracteres.indexOf(trozo.charAt(i)) == -1) {
            valido = false;
            break;
        }
    }    
    if (!valido) {
        return false;
    }
    valido = true;
    trozo = email.substring(1+pos_arroba, pos_ultimo_punto);
    for(i=0;i<trozo.length;i++) {
        if (caracteres.indexOf(trozo.charAt(i)) == -1) {
            valido = false;
            break;
        }
    }    
    if (!valido) {
        return false;
    }
    valido = true;
    trozo = email.substring(1+pos_ultimo_punto, email.length);    
    if ((trozo.length >= 2)&&(trozo.length <= 4)) {
        for(i=0;i<trozo.length;i++) {
            if (caracteres.indexOf(trozo.charAt(i)) == -1) {
                valido = false;
                break;
            }
        }    
        if (!valido) {
            return false;
        }
    } else {
        return false;
    }
    return true;
} 


//verifica fechas, formato dd/mm/aaaa o d/m/aa
function verificafecha(fecha){
 var mes31dias = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(1900|19[0-9][0-9]|20[0-9][0-9]|2020)$/
 var mes30dias = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(1900|19[0-9][0-9]|20[0-9][0-9]|2020)$/
 var mes28dias = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(1900|19[0-9][0-9]|20[0-9][0-9]|1999|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])$/
 var mes29dias = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(1944|1948|1952|1956|1960|1964|1968|1972|1976|1980|1984|1988|1992|1996|2000|2004|2008|2012|2016|2020)$/


   if (!(mes31dias.test(fecha) || 
	mes30dias.test(fecha) ||
	mes29dias.test(fecha) ||
	mes28dias.test(fecha))) {
        return false;
	}
 return true;
}

//Extrae subcadenas de cadenas

function ExtractWord(s,pos,delimitador) {
  var i,p;
  var ss=new String();
  
  p=0;
  i=0;
  ss='';  
  
  if (s.charAt(s.length)!=delimitador) s=s+delimitador;      
  
  for (i=0;i<s.length;i++){
    if (s.charAt(i)==delimitador){
      p=p+1;
      if (p==pos) return ss;
      ss='';
    }else{
        ss=ss+s.charAt(i);
     }   
  }
    
}



  function ValidateForm(objeto,color){
    var i,s,valor,nombre,rellenar
    
    rellenar='';
    s='';
    valor='';
    nombre='';
    
    for(i=0;i<objeto.length;i++){
      s=objeto[i].id;
      
      if (s=='') continue;
      
      obligatorio=ExtractWord(s,2,'.');
       
      valor=objeto[i].value;
      nombre=ExtractWord(s,3,'.');

      switch (ExtractWord(s,1,'.')){
        case 'a','A': 

          if (obligatorio=='O'&&valor==''){
             rellenar=rellenar+nombre+'\n';
             objeto[i].style.backgroundColor=color;
             break;
          }               

          break;          

        case 'c','C': 

          if (obligatorio=='O'&&valor==''){
             rellenar=rellenar+nombre+'\n';
             objeto[i].style.backgroundColor=color;
             break;
          }               

          if (valor!=''&&!isNaN(valor)){
             alert('El valor introducido en el campo '+nombre+' no es correcto');
             objeto[i].value='';
             if (obligatorio=='O'&&valor!=''){
                rellenar=rellenar+nombre+'\n';             
                objeto[i].style.backgroundColor=color;
             }
          }

          break;          
        case 'e','E': 
          if (obligatorio=='O'&&valor==''){
             rellenar=rellenar+nombre+'\n';
             objeto[i].style.backgroundColor=color;
             break;
          }

          if (valor!=''&&!ValidarCorreo(valor)){
             alert('El valor introducido en el campo '+nombre+' no es correcto');
             objeto[i].value='';
             if (obligatorio=='O'&&valor!=''){
                rellenar=rellenar+nombre+'\n';                          
                objeto[i].style.backgroundColor=color;
             } 
          }

          break;          
        case 'n','N': 
          if (obligatorio=='O'&&valor==''){
             rellenar=rellenar+nombre+'\n';
             objeto[i].style.backgroundColor=color;
             break;
          }                                          

          if (valor!=''&&isNaN(valor)){
             alert('El valor introducido en el campo '+nombre+' no es correcto');
             objeto[i].value='';
             if (obligatorio=='O'&&valor!=''){
               rellenar=rellenar+nombre+'\n';                          
               objeto[i].style.backgroundColor=color;
             }
          }

          break;          
        case 'f','F':
          if (obligatorio=='O'&&valor==''){
             rellenar=rellenar+nombre+'\n';
             objeto[i].style.backgroundColor=color;
             break;
          }                                          

          if (valor!=''&&verificafecha(valor)==false){
             alert('El valor introducido en el campo '+nombre+' no es correcto');
             objeto[i].value='';            
             if (obligatorio=='O'&&valor!=''){
                rellenar=rellenar+nombre+'\n';                          
                objeto[i].style.backgroundColor=color;
             }
          }

          break;          
       }
    }  


    if (rellenar=='') 
        return true;
       else
        return rellenar;       
   
  }



function DetectaNavegador(){
  if (document.all) { 
     return 'IE';
  } else if (document.layers) { 
     return 'NETSCAPE';
  } 
}


//Verifica si se ha rellenado el campo
function CheckBlank(aCampos,aNombres,objformulario){
  var s,obj;
  s='';
  for (i=0;i<aCampos.length;i++){
     obj=objformulario[aCampos[i]];
     if (obj==null){
       s=s+'    - '+aNombres[i]+'\n';
       continue;
     }
     if (obj.value=='') s=s+'    - '+aNombres[i]+'\n'; 
  }

  return s;
}


//Valida los formularios para Netscape, hay que hacer 3 arrays uno de campos, tipos y nombres
function ValidateFormN(aCampos,aTipos,aNombres,objformulario){
  var i,v,obj;
  for (i=0;i<aCampos.length;i++){
     obj=objformulario[aCampos[i]];

     v=obj.value;

     if (v=='') continue;

     switch (aTipos[i]){
      case 'c': 
        if (!isNaN(v)){
           alert('El valor introducido en el campo '+aNombres[i]+' no es correcto');
           obj.value='';
           return false
        }
        break;
      case 'e': 
        if (!ValidarCorreo(v)){
           alert('El valor introducido en el campo '+aNombres[i]+' no es correcto');
           obj.value='';
           return false
        }
        break;
      case 'n': 
        if (isNaN(v)){
           alert('El valor introducido en el campo '+aNombres[i]+' no es correcto');
           obj.value='';
           return false
        }
        break;
      case 'f':
        if (!verificafecha(v)){
           obj.value='';
           alert('El valor introducido en el campo '+aNombres[i]+' no es correcto');
           return false
        }
        break;
     }
  }     
  return true
}



//Cuenta los caráceres que te quedan por escribir en un TEXTAREA
function CuentaCaracter(field, maxlimit) {
   if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
   }
}

function confirmar(accion,destino,enunciado){
  if (confirm(enunciado)){
    window.document.formulario.target=destino;
    window.document.formulario.action=accion;
    window.document.formulario.submit(); 
  }
}

function BrowserDetection() {
  this.ie4 = document.all && !document.getElementById;
  this.ns4 = document.layers;
  this.ie5 = this.ie6 = document.all && document.getElementById;
  this.ns6 = document.getElementById && !document.all;
}