
	function f_open_window_max( aURL, aWinName )
	{
		var wOpen;
		var sOptions;

		sOptions = 'menubar=yes, status=yes, toolbar=yes,resizable=yes,location=yes,scrollbars=yes';
		sOptions = sOptions + ',width=' + (screen.availWidth - 10).toString();
		sOptions = sOptions + ',height=' + (screen.availHeight - 122).toString();
		sOptions = sOptions + ',screenX=0,screenY=0,left=0,top=0';

		wOpen = window.open( '', aWinName, sOptions );
		wOpen.location = aURL;
		wOpen.focus();
		wOpen.moveTo( 0, 0 );
		wOpen.resizeTo( screen.availWidth, screen.availHeight );
		return wOpen;
	}
	
	//Valida el formulario de búsqueda.
	function valformbuscador()
	{
		if ((document.buscador.txtBusqueda.value!='')||((document.buscador.txtFechaBusqueda.value!='')&&(document.buscador.txtFechaBusqueda.value!='dd/mm/aaaa')))
		{
			return true;
		}else
		{
			alert('Tiene que introducir algun criterio de búsqueda')
			return false;			
		}
	}

	// rolover del menu izquierdo
	function cambiaEstilo(n,m){
		if (m=="item3" && n.className=="item0")
		{
			n.className=m
		}
		else if(m=="item0" && n.className=="item3"){
			n.className=m
		}
	}
	
	// activar items del menu izquierdo
	function activar(n){
	/*
	menu=document.getElementById('menuIzq');
	menu2=menu.getElementsByTagName('li')
	menu2[n-1].className='item1'
	activo=menu2[n-1]*/
	}
	
	// recoge la fecha del calendario y la pinta en el input de la home
	function llena(n,m,o){
	document.getElementById('fecha').value=n+"/"+m+"/"+o
	}
	
	// menu desplegable (solo para IE)
	function venga() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("nav");
			for (i=0; i<navRoot.childNodes.length; i++) {
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					for(p=0;p<node.childNodes.length;p++){
						if(node.childNodes[p].nodeName=="UL"){
							quienes=node.childNodes[p].childNodes
							cuantos=quienes.length
							for(n=0;n<cuantos; n++){
							quienes[n].onmouseover=function(){
								this.className+=" sob"
							}
							quienes[n].onmouseout=function(){
								this.className=this.className.replace(" sob", "")
							}
							}
						}
				}
					node.onmouseover=function() {
						this.className+=" ober";
					}
					node.onmouseout=function() {
						this.className=this.className.replace(" ober", "");
					}
				}
			 }
		 } 
	 }
	 
	 // rolover del mapa
	 function mapa(n){
	 cual=document.getElementById('mapaTotal')
		if(n){
		cual.src='../img/'+n+'.gif'
		}
		else{
		cual.src='../img/dot_no.gif'
		}
	 }
	
	
	
	//-----------------------------------
	
	


/******************************************************************************
* La función IsNumeric, nos valida que el campo sea un número
*******************************************************************************/
function IsNumeric(sNumber)
{
	for ( lPos = 0; lPos < sNumber.length; lPos++ ) {
		var sChar = sNumber.charAt( lPos );
		if ( isNaN( parseInt( sChar ) ) 
   			&& sChar != "-"
     		&& sChar != "+"
     		&& sChar != "."
	   		&& sChar != "," ) {
			return false;
		}
	}
	return true;
}

/******************************************************************************
* La función IsMailAddress, nos valida que el campo email tenga un formato de
* correo correcto
*******************************************************************************/
function IsMailAddress(sMail) 
{
	var Pos    = sMail.indexOf('@')
	var Period   = sMail.lastIndexOf('.')
	var Space    = sMail.indexOf(' ')
	var Length   = sMail.length - 1   // Array is from 0 to length-1
	var invalid = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // invalid characters
	var valid = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid characters
	var end = /\.[a-zA-Z]{2,3}$/; // end of email
	if ((Pos < 3) ||				// Must be atleast 3 characters before @ sign
		(Period <= Pos+1) ||        // Must be atleast one valid char btwn '@' and '.'
		(Period == Length ) ||      // Must be atleast one valid char after '.'
		(Space  != -1) ||           // No empty spaces permitted
		(invalid.test(sMail)) ||	// Mustn't contain invalid characters
		(!valid.test(sMail)) ||		// Must contain valid characters
		(sMail.search(end) == -1))  // Check email's end
	{       		
		return false;
	}
  return true;
}



/******************************************************************************
* La función click, Desactiva el botón derecho del ratón
*******************************************************************************/

function click() {
	if (event.button==2) alert ('This button is out of use.')
}


/******************************************************************************
* La función contador, fuerza a un límite de caracteres los campos
*******************************************************************************/
function contador (campo,cuentacampo,limite)
{
	if (campo.value.length > limite){
		campo.value = campo.value.substring (0, limite);
	}else{
		cuentacampo.value = limite - campo.value.length;
	}	
}

/******************************************************************************
* La función tamanoCampo, también fuerza a un límite de caracteres los campos
* sin utilizar cuentacampo
*******************************************************************************/
function tamanoCampo(nombre,tamano){
	var escritas=nombre.value.length;
	if(escritas>=tamano){
		return false;
	}else{
		return true;
	}
}



/******************************************************************************
* La función validaCampoRelleno, nos valida que el campo indicado esté relleno
*******************************************************************************/
function validaCampoRelleno(campo)
{
	if (campo.value=="")
	{			
		alert("Complete el campo " + campo.title);
		campo.focus();
		return false;
	}
	return true;
}
/***************************************************************************************
* La función validaSelectRelleno, nos valida que en el select exista una opción elegida
****************************************************************************************/
function validaSelectRelleno(campoSelect)
{
	var indice=campoSelect.selectedIndex
	if(campoSelect.options[indice].value==-1 || campoSelect.options[indice].value==""){
		alert("Seleccione una opción del " + campoSelect.title);
		campoSelect.focus();
		return false;
	}	
	return true;
}

/*************************************************************************************************
* La función validaRadioRelleno, nos valida que exista una opción elegida entre los radioButtons
**************************************************************************************************/

function validaRadioRelleno(varRadio,nombreCampo){

	var select=false;
	var i 
	for (i=0;i<varRadio.length;i++){ 
	   if (varRadio[i].checked) 
		 select=true;
	} 
	if (select==false){
		alert("Seleccione una opción de " + nombreCampo);
		return false;
	}	
	return true;
}
/******************************************************************************
* La función validar_formato_numero, nos valida la existencia de números enteros!!!
* en un campo que debe de ser numérico.Recibe un parámetro, el valor del campo
* del formulario a evaluar. No permite ni puntos ni comas.
*******************************************************************************/

function validar_formato_numero(numero){
  
    if(numero.value.length==0){
		return true;
    }
	if(isNaN(numero.value)){
       alert('Introduce digits only in this field '+ numero.title); 
       numero.focus(); // Selección del campo  
       return false;
	}
    if(numero.value.indexOf('.')!=-1){
       alert('Do not use decimal points in this field ' + numero.title); 
       numero.focus(); // Selección del campo  
       return false;
	}
	if(numero.value.indexOf(',')!=-1){
       alert('Do not use decimal comma in this field ' + numero.title); 
       numero.focus(); // Selección del campo  
       return false;
	}
  
	return true;
} // Fin de la función validar_formato_numero


/***************************************************************************
* La función validar_formato_fecha, es una función genérica para validar la
* fecha. Los parámetros que necesita
* son el día, mes y año.
****************************************************************************/


function validar_formato_fecha(dia,mes,ano){
	if(!validaCampoRelleno(dia)){
			return false;
	}
	if(!validaCampoRelleno(mes)){
			return false;
	}
	if(!validaCampoRelleno(ano)){
			return false;
	}
	 
	if(dia.value.length!=2){
       alert('Introduce two digits in this field ' + dia.title + ', e.g. if “3” write “03”');
	     dia.focus();
	    return false;
   	}
	if(mes.value.length!=2){
       alert('Introduce two digits in this field ' + mes.title + ', e.g. if “3” write “03”');
	    mes.focus();
	    return false;
   	}
	if(ano.value.length!=4){
		alert('Introduce four digits in the year of ' + ano.title );
		ano.focus();
		return false;
    }

    var bisiesto;  // Variable para almacenar el resto de la división 
      //del año introducido por el usuario entre el número 4 para 
      //para comprobar si el año introducido es bisiesto
    bisiesto=ano.value%4;//Asignación a la variable bisiesto del resto del
      //cociente entre el año introducido por usuario y el número 4 (cada 4 años
      // es año bisiesto)
    if (ano.value%4==0&&(ano.value%100!=0 || ano.value%400==0))
    {
		bisiesto=0;
    }else{
		bisiesto=-1;
	}
	


	if (!(validar_formato_numero(dia,'dia')&&validar_formato_numero(mes,'mes')&&validar_formato_numero(ano,'año')))
	{
		return false;
	}else if((dia.value >31)||(dia.value <1)){
		// el día introducido tiene que estar comprendido entre los dígitos 1 y 31
		alert('Introduce a day between 1 and 31'); 
		dia.focus();
		return false;
	}else if((mes.value >12)||(mes.value <1)){
		// el mes introducido tiene que estar comprendido entre los dígitos 1 y 12
	   alert('Introduce a month between 1 and 12'); 
	   mes.focus();
	   return false;
	}else if((dia.value>=29)&&(mes.value==2)&&(bisiesto!=0)){
		// comprobación si el año introducido es bisiesto o no lo es
		alert('February has 28 days');
		dia.focus();
	  return false;
	}else if((dia.value>29)&&(mes.value==2)){
		alert('February has 28 days');
		// febrero no puede tener más de 29 días
		dia.focus();
        return false;
    }
	// fin del último else
    return true;
 } // Fin de la función validar_formato_fecha

 function solonumeros()
{
    if((event.keyCode < 48) || (event.keyCode > 57))
      event.returnValue=false;
}
function formatofecha(objeto) // dd/mm/aaaa pone los slash dinámicamente.
{
   var sw=0;
   if (event.keyCode >= 48 && event.keyCode <= 57)
   {
      switch (objeto.value.length)
      {
         case 2:
            for(i=0;i<=objeto.value.length;i++)
            {
               if (objeto.value.substring(i,i+1) == "/") {
                  sw=1;
                  break;
               }
            }
            if (sw==0) {
               objeto.value = objeto.value + "/";
            }
            break;
         case 5:
            for(i=0;i<=objeto.value.length;i++)
            {
               if (objeto.value.substring(i,i+1) == "/") {
                  sw++;
                  if (sw==2) {
                     break;
                  }
               }
            }
            if (sw!=2) {
               objeto.value = objeto.value + "/";
            }
            break;
      }
      if (objeto.value.length == 4) {
         if (objeto.value.substring(2,3) != "/") {
            objeto.value = "";
         }
      }
   }
}
function comprobarfecha(texto,pinto,primario,nombre)
{
    // texto -> pasar el input de donde se quiere comprobar la fecha.
    // pinto -> si se pone "si" o se deja en blanco ("") saca las alertas de errores, si se pone "no" no 
    //          las saca.
    // primario -> indica si el campo que se va a comprobar es primario y hay que comprobarlo anque el conte- 
    //             nido no tenga nada. (si->campo primario se comprueba siempre; no-> solo se comprueba cuando 
    //             el campo no este vacío).
    // nombre -> completa los mensajes como: Debe introducir una fecha válida + nombre.
    // Devuelve:
   /*          NaN -> cuando el formato de la fecha es distinto de DD/MM/AAAA.
               año0 -> cuando el año introducido es cero
               mes -> cuando el mes es mayor que 12
               mes0 -> cuando el mes es cero
               dia0 -> cuando el día es cero
               dia30 -> cuando se introduce un día mayor que 30 y el mes solo tiene 30
               dia31 -> cuando se introduce un día mayor que 31 y el mes solo tiene 31
               dia28 -> cuando al metido el mes febrero y han metido más de 28 días
               dia29 -> cuando al metido el mes febrero y el año es bisiesto y han metido más de 29 días
               ! -> cuando hay un error no contemplado en la fecha (si sale este error consultar con el creador
                    para contemplarlo)
   */
    var x = "";
    var y = "";
    var frase = "";
 if (primario=="si" || (primario=="no" && texto!="")) {
    if (pinto == "si") {
       if (nombre == "") {
          frase = ".";
       }
       else{
          frase = " " + nombre + ".";
       }
    }
    if (texto.substring(2,3) != "/") {
       x = "NaN";
       y = "NaN";
    }
    else{
       if (texto.substring(5,6) != "/") {
          x = "NaN";
          y = "NaN";
       }
       else{
          if (texto.length != 10){
             x = "NaN";
             y = "NaN";
          }
          else{
            if (parseFloat(texto.substring(6,10)) == 0) {
               x = "año0";
               y = "NaN";
            }
            else{
               if (parseFloat(texto.substring(3,5)) > 12) {
                  x="mes";
                  y = "NaN";
               }
               else{
                  if (parseFloat(texto.substring(3,5)) == 0) {
                     x="mes0";
                     y = "NaN";
                  }
                  else{
                     if (parseFloat(texto.substring(0,2)) == 0) {
                        x="dia0";
                        y = "NaN";
                     }
                     else{
                        if (parseFloat(texto.substring(0,2)) > 31 &&
                           (parseFloat(texto.substring(3,5))== 1  ||
                            parseFloat(texto.substring(3,5))== 3  ||
                            parseFloat(texto.substring(3,5))== 5  ||
                            parseFloat(texto.substring(3,5))== 7  ||
                            parseFloat(texto.substring(3,5))== 8  ||
                            parseFloat(texto.substring(3,5))== 10 ||
                            parseFloat(texto.substring(3,5))== 12)) {
                              x="dia31";
                              y = "NaN";
                        }
                        else{
                           if (parseFloat(texto.substring(0,2)) > 30 &&
                              (parseFloat(texto.substring(3,5))== 4  ||
                               parseFloat(texto.substring(3,5))== 6  ||
                               parseFloat(texto.substring(3,5))== 9  ||
                               parseFloat(texto.substring(3,5))== 11)) {
                                 x="dia30";
                                 y = "NaN";
                           }
                           else{
                              if (parseFloat(texto.substring(3,5)) == 2   &&
                                  parseFloat(texto.substring(6,10))%4 == 0 &&
                                  parseFloat(texto.substring(0,2)) > 29) {
                                    x="dia29";
                                    y = "NaN";
                              }
                              else{
                                 if (parseFloat(texto.substring(3,5)) == 2   &&
                                     parseFloat(texto.substring(6,10))%4 != 0 &&
                                     parseFloat(texto.substring(0,2)) > 28) {
                                       x="dia28";
                                       y = "NaN";
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
       }
    }
  if (y != "" && (pinto == "si" || pinto == "")) {
     switch (x) {
      case "NaN":
         alert("Debe introducir una fecha válida" + frase + "\n\nDD/MM/AAAA");
         break;
      case "año0":
         alert("Debe introducir una fecha válida" + frase + "\n\nEl año no puede ser 0.");
         break;
      case "mes":
         alert("Debe introducir una fecha válida" + frase + "\n\nEl mes no puede ser mayor de 12.");
         break;
      case "mes0":
         alert("Debe introducir una fecha válida" + frase + "\n\nEl mes no puede ser 0.");
         break;
      case "dia0":
         alert("Debe introducir una fecha válida" + frase + "\n\nEl día no puede ser 0.");
         break;
      case "dia30":
         alert("Debe introducir una fecha válida" + frase + "\n\nEl mes introducido solo tiene 30 días.");
         break;
      case "dia31":
         alert("Debe introducir una fecha válida" + frase + "\n\nEl mes introducido solo tiene 31 días.");
         break;
      case "dia28":
         alert("Debe introducir una fecha válida" + frase + "\n\nFebrero solo tiene 28 días.");
         break;
      case "dia29":
         alert("Debe introducir una fecha válida" + frase + "\n\nFebrero solo tiene 29 días.");
         break;
      default:
         alert("Fecha no válida.");
         x="!";
         break;
     }
  }
 }
  return(x);
}