/***********************************************************************************************/
/* Función para cambiar los el foco en los tres campos de la fecha.                            */
/***********************************************************************************************/
function cambiarCaja(objOrigen, objDestino, num)
{ var numOrigen = objOrigen.value.length;
  
  if(numOrigen == num)
  { objDestino.focus();
  }
}


/***********************************************************************************************/
/* Función que comprueba si la fecha introducida es válida.                                    */
/***********************************************************************************************/
function validarFecha(campoDia, campoMes, campoAnio, nombreCampo)
{  var fecha = campoDia.value + "/" + campoMes.value + "/" + campoAnio.value;
  
   if (fecha)
   {  borrar = fecha;
      if ((fecha.substr(2,1) == "/") && (fecha.substr(5,1) == "/") || (fecha.substr(2,1) == "-") && (fecha.substr(5,1) == "-"))
      { for (i=0; i<10; i++)
	{ if (((fecha.substr(i,1)<"0") || (fecha.substr(i,1)>"9")) && (i != 2) && (i != 5))
	  { borrar = '';
            break;  
	  }  
        }
	
	if (borrar)
	{ a = fecha.substr(6,4);
	  m = fecha.substr(3,2);
	  d = fecha.substr(0,2);
	
	  if ((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
	  {  borrar = '';
	  }
	  else
	  { if ((a%4 != 0) && (m == 2) && (d > 28))	   
	    { borrar = ''; // Año no bisiesto y es febrero y el dia es mayor a 28
	    }
	    else	
	    { if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
	      { borrar = '';	      				  	 
	      }
            }
	  } 
        }
      } 
      else
      { borrar = '';
      }
      
      if (borrar == '')
      { alert('El valor introducido en el campo ' + nombreCampo + ' es incorrecto');
        campoDia.focus();
        return false;
      }    
      
      if (borrar != '')
      { 
      	strFechaActual = new Date();      	
        strDiaActual  = strFechaActual.getDate();
        strMesActual  = strFechaActual.getMonth();
        strAnioActual = strFechaActual.getFullYear();             
        
        dFecha = new Date();
        dFechaActual = new Date();
        
        dFecha.setDate(d);
        dFecha.setMonth(m - 1);
        dFecha.setFullYear(a);
        
        dFechaActual.setDate(strDiaActual);
        dFechaActual.setMonth(strMesActual);
        dFechaActual.setFullYear(strAnioActual);
        
        if (dFecha < dFechaActual)
        {
          alert('La fecha de introducida en el campo ' + nombreCampo + ' no puede ser anterior a la Fecha Actual');                    
          campoDia.focus();
          return false;
        }          
     } 
           
     return true;
   } 
   else //La fecha es vacía
   { alert('Es obligatorio el campo ' + nombreCampo);
     campoDia.focus();
     return false;
   }
} 

/***********************************************************************************************/
/* Función que comprueba si la fecha introducida es válida.                                    */
/***********************************************************************************************/
function validarFecha2(campoDia, campoMes, campoAnio, nombreCampo)
{  var fecha = campoDia.value + "/" + campoMes.value + "/" + campoAnio.value;
  
   if (fecha)
   {  borrar = fecha;
      if ((fecha.substr(2,1) == "/") && (fecha.substr(5,1) == "/") || (fecha.substr(2,1) == "-") && (fecha.substr(5,1) == "-"))
      { for (i=0; i<10; i++)
	{ if (((fecha.substr(i,1)<"0") || (fecha.substr(i,1)>"9")) && (i != 2) && (i != 5))
	  { borrar = '';
            break;  
	  }  
        }
	
	if (borrar)
	{ a = fecha.substr(6,4);
	  m = fecha.substr(3,2);
	  d = fecha.substr(0,2);
	
	  if ((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
	  {  borrar = '';
	  }
	  else
	  { if ((a%4 != 0) && (m == 2) && (d > 28))	   
	    { borrar = ''; // Año no bisiesto y es febrero y el dia es mayor a 28
	    }
	    else	
	    { if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
	      { borrar = '';	      				  	 
	      }
            }
	  } 
        }
      } 
      else
      { borrar = '';
      }
      
      if (borrar == '')
      { alert('El valor introducido en el campo ' + nombreCampo + ' es incorrecto');
        campoDia.focus();
        return false;
      }                 
           
     return true;
   } 
   else //La fecha es vacía
   { alert('Es obligatorio el campo ' + nombreCampo);
     campoDia.focus();
     return false;
   }
} 


/**********************************************************************************************/
/* Función quitar los espacios que hay al principio y al final de un string.                  */                                                                       
/**********************************************************************************************/
function quitarEspacios(campo) 
{ var textoSinEspacios = '';
  textoSinEspacios = campo.value;
  
  while('' + textoSinEspacios.charAt(textoSinEspacios.length-1) == ' ')
  { textoSinEspacios = textoSinEspacios.substring(0, textoSinEspacios.length-1);
  }   
  
  return textoSinEspacios;
}


/**********************************************************************************************/
/* Función para comprobar si se ha introducido un valor en un campo de texto.                 */                                                                       
/**********************************************************************************************/
function comprobarTextoRelleno (campo, nombreCampo)
{ if (campo.value.length == 0)
  { alert('Es obligatorio introducir el campo ' + nombreCampo);
    campo.focus();
    return false;
  }
   
  if (quitarEspacios(campo) == '')
  { alert('Es obligatorio introducir el campo ' + nombreCampo);
    campo.focus();
    return false;
  }
  
  return true;    
}

/**********************************************************************************************/
/* Función para comprobar si se ha seleccionado alguna opción en una lista múltiple.          */                                                                       
/**********************************************************************************************/
function comprobarOpcionSeleccionada (campo, nombreCampo)
{ var blnResultado = false;
  
  for (i=0; ((i < campo.length) && !blnResultado); i++)
  { if (campo.options[i].selected)
    { blnResultado = true;
    }
  }
  
  if (!blnResultado)
  { alert ('Selecciona una o varias Opciones de la lista');
    campo.focus();
  }
  
  return blnResultado;
}

/**********************************************************************************************/
/* Función para comprobar si se ha seleccionado alguna opción en una lista múltiple.          */                                                                       
/**********************************************************************************************/
function comprobarOpcionSeleccionadaCombo (campo, nombreCampo)
{ var blnResultado = false;
    
  if (campo.value == '')    
  { campo.focus();
    alert ('Selecciona una opción en el campo ' + nombreCampo);
    return false;    
  }
  
  return true;
}


/***********************************************************************************************/
/* Función que comprueba que el número de teléfono introducido sea numérico y tenga 9 dígitos. */
/***********************************************************************************************/
function validarNumeroTelefono(campo, nombreCampo)
{ var strError = 'El valor introducido en el campo ' + nombreCampo + ' no es correcto';
  var er = /^(\d{9})$/;
  var blnValorCorrecto = true;

  if (er.test(campo.value))
  { return true;
  } 
  else 
  { alert (strError);
    campo.focus();
    return false;
  }
}

/***********************************************************************************************/
/* Función que comprueba si una dirección de correo electrónico es correcta.                   */
/***********************************************************************************************/
function validarEmail(valor, nombreCampo) 
{ var strError = 'La dirección de correo electrónico introducida en el campo ' + nombreCampo + ' no es correcta';
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
  { return true;
  } 
  else 
  { alert (strError);
    document.formulario.eMail.focus();
    return false;
  }
}

/**********************************************************************************************/
/* Función para que no se visualice la zona en la que muestran los mensajes de resultado en   */
/* las páginas.                                                                               */                                                                       
/**********************************************************************************************/
function visualizar()
{ target= document.getElementById("listadoObjetivos");     
  target.style.display = "";
  
  target=document.getElementById("resultado");
  target.style.display="none";
}

/**********************************************************************************************/
/* Función para que no se visualice la zona en la que muestran los mensajes de resultado en   */
/* las páginas.                                                                               */                                                                       
/**********************************************************************************************/
function visualizarElemento(elemento1, elemento2)
{ target= document.getElementById(elemento1);     
  target.style.display = "";
  
  target=document.getElementById(elemento2);
  target.style.display="none";    
}

/**********************************************************************************************/
/* Función para limitar la longitud del texto de los controles textarea.                      */
/**********************************************************************************************/
function validarLongitud (textarea, longitud)
{ if (textarea.value.length > (longitud - 1))
  { textarea.value = textarea.value.substring(0,longitud);        
  }  
}
