//Funciones creadas por el Macromedia DrimWeaver
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; 

  document.MM_sr=new Array; 
  
  for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; 
    if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
  }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; 
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//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 <= 3)) {
        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 WordCount(cadena,delimitador){
  var i,s,r;
  
  s='';
  r=0;
  for (i=0;i<cadena.length;i++){
     s=cadena.charAt(i);
     if (s==delimitador) r++;
  }
  return r;
}

  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 ChangeColor(objeto,color){
  objeto.style.backgroundColor=color;
}

//Cambia la imagen de un objeto formulario por la del origen que le digas

function ChangeImage(objeto,origen){
  objeto.src=origen;
}

//formatea la fecha del dia actual

function FechaActual(){
 var d=new Date();

 return d.getDate()+'/'+(d.getMonth()+1)+'/'+d.getFullYear();
}

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
}

//abre ventanas Pop up con los parámetros que quieras
function AbrirVentana(url, nom, w, h, parametros){
  var x=(screen.width/2)-Math.floor(w/2); //Posicion centrada en x
  var y=(screen.height/2)-Math.floor(h/2);//Posicion centrada en y

  var str='top='+y+',left='+x+',width='+w+',height='+h;

  
  if (parametros!='') str=str+','+parametros;

  ventana=window.open(url,nom,str);
}

function resume(texto,caracteres){
  if (texto.length>caracteres){
     texto=texto.substr(0,caracteres);
     window.document.write(texto+'...');
    }else{
     window.document.write(texto);
  }
}

function VisibilidadCapa(objeto,visibilidad){
  if (window[objeto]!=undefined){
      window[objeto].style.visibility=visibilidad;
  }
}

function CenterLayerOnScreen(objeto,LayerWidth,LayerHeight){
 var obj,LayerPosX,LayerPosY;

 //** posiciones de la capa dependiendo de la resolución
 LayerPosX=(screen.width/2)-(LayerWidth/2); //Posicion centrada en x
 LayerPosY=(screen.height/2)-(LayerHeight/2);//Posicion centrada en y

 //** objeto con el que trabajamos **
 obj=window[objeto];
 
 obj.style.width=LayerWidth;
 obj.style.height=LayerHeight;

 //** establecemos la posicion de la capa **
 obj.style.top=LayerPosY;
 obj.style.left=LayerPosX;
}

function RefreshVisibility(objeto){
 var obj;

 obj=window[objeto];

 if (obj.style.visibility=='hidden'){
     obj.style.visibility='visible'
 }else{
     obj.style.visibility='hidden'
 }
 
}

//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 ValidaBusqueda(color){
    window.document.formulario.action='resultados_busqueda.asp?Reset=1';
    validate(color);
  }
