////////////////////////////////////////////////////////////////
// Funciones comunes a la web Recursos Humanos
//
// Autor: Miguel Angel Mulero Martinez
// Autor: Oscar Riaño de Antonio
//
// Modificación: Clara  10-03-2005
//               Nueva función "abrirEnVentana"
////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////
// enviaFormParam
// Envia el formulario especificado con los parametros indicados
// nomForm - Nombre del formulario
// param - Parametro a añadir a la URL (opcional)
//
function enviaFormParam(nomForm,param) {

        // Si es null no ponemos nada
    if (param) {
        // Eliminamos cualquier parametro que tenga
        var action = eval('document.forms["'+nomForm+'"].action').split('?');

        cad = 'document.forms["'+nomForm+'"].action = action[0] + "?'+param+'"'
        eval(cad)
    } // if

    // Enviar
    cad2 = 'document.forms["'+nomForm+'"].submit()'
    eval(cad2)
}


////////////////////////////////////////////////////////////////
// enviaFormTo
// Envia el formulario especificado a la direccion elegida
// nomForm - Nombre de formulario
// dir     - Direccion de envio
//
function enviaFormTo(nomForm,dir) {

    // Si es null no ponemos nada
    if ((nomForm!=null) && (dir!=null)) {

        componente = eval('document.forms["'+nomForm+'"]');
        componente.action=dir
        componente.submit()
    } // if
}

////////////////////////////////////////////////////////////////
// enviaFormToParam
// Envia el formulario especificado a la direccion elegida con el
// parametro especificado
// nomForm - Nombre de formulario
// dir     - Direccion de envio
// param   - Parametros
//
function enviaFormToParam(nomForm,dir,param) {

    // Si es null no ponemos nada
    if ((nomForm!=null) && (dir!=null)) {

        componente = eval('document.forms["'+nomForm+'"]');
        componente.action=dir+'?'+param;
        componente.submit()
    } // if
}

/////////////////////////////////////////////////////////////////
// limpiar
// Función que limpia los elementos de un formulario
// formula - formulario a limpiar incluido los hidden.
//
function limpiarTodo(formula,noBorrar) {
  var aux=buscaElemento(formula.name,noBorrar);
  for (i = 0 ; i < formula.length ; i++) {
       tempobj = formula.elements[i];
       if(aux!=tempobj) {
            // Text
            if (tempobj.type == "text" || tempobj.type=="textarea" || tempobj.type=="hidden" || tempobj.type=="file") {
              tempobj.value = "";
            }
            // Combo
            else if (tempobj.type == "select-one") {
                    // No es vacio el combo
                    if (tempobj.options[0])
                            tempobj.options[0].selected = true;

            // Checkbox
            } else if (tempobj.type == "checkbox")
                    tempobj.checked = false;
    }
  } // for
}


/////////////////////////////////////////////////////////////////
// consigueFecha
// Devuelve la fecha actual en formato X de XXXXX de XXXX
//
//
function consigueFecha() {
        hoy = new Date();
        dia = hoy.getDate();
        mes = hoy.getMonth();
        anyo = hoy.getFullYear();

        switch(mes) {
        case 0:mes='Enero';break;
        case 1:mes='Febrero';break;
        case 2:mes='Marzo';break;
        case 3:mes='Abril';break;
        case 4:mes='Mayo';break;
        case 5:mes='Junio';break;
        case 6:mes='Julio';break;
        case 7:mes='Agosto';break;
        case 8:mes='Septiembre';break;
        case 9:mes='Octubre';break;
        case 10:mes='Noviembre';break;
        case 11:mes='Diciembre';break;
        } // switch

        cadena = dia + ' de ' + mes + ' de ' + anyo;
        return cadena;
}

/////////////////////////////////////////////////////////////////
// limpiar
// Función que limpia los elementos de un formulario
// formula - formulario a limpiar
//
function limpiar(formula) {
    // Recorre los elementos
    for (i = 0 ; i < formula.length ; i++) {
                tempobj = formula.elements[i];

                // Text
                if (tempobj.type == "text" || tempobj.type=="textarea")
                {
                        tempobj.value = "";
		}

                // Combo
                else if (tempobj.type == "select-one") {
                        // No es vacio el combo
                        if (tempobj.options[0])
                                tempobj.options[0].selected = true;

                // Checkbox
                } else if (tempobj.type == "checkbox")
                        tempobj.checked = false;

    } // for
}

/******************************
 * NavegadorInfo
 * Los objetos instanciados de esta clase, contienen informacion sobre el navegador
 * Los valores son:
 * nombre - Nombre del navegador
 * codigonombre - Codigo identificativo del motor de exploracion
 * version - Version del navegador
 * plataforma - Plataforma (Sistema Operativo)
 * javaActivado - Indica si el navegador soporta o no java
 * pantallaWidth - Ancho pantalla
 * pantallaHeight - Alto pantalla
 * codigo - Identificador de explorador para su uso por javascript. Se diferencia
 *			 entre explorer (IE), Netscape 6 o superior (NN6) y Netscape anterior a 6 (NN4)
 */
function NavegadorInfo() {

        this.nombre = navigator.appName;
       this.codigoNombre = navigator.appCodeName;
       this.version = navigator.appVersion.substring(0,4);
       this.plataforma = navigator.platform;
       this.javaActivado = navigator.javaEnabled();
       this.pantallaWidth = screen.width;
       this.pantallaHeight = screen.height;

       // Navegador Netscape
       if (this.nombre=='Netscape') {
               if (this.version < 5) {
                       this.codigo = 'NN4'
               } else {
                       this.codigo = 'NN6'
               } // if-else

       // Explorer
       } else {
               this.codigo = 'IE';
       } // if-else

}

function gotoName(nombre) {

    // Objeto con informacion del navegador
    var navegador = new NavegadorInfo();


    if (navegador.codigo == 'IE' )
        eval("document.location.href='"+nombre+"';");

    else {
        onload = "document.location.href='"+nombre+"';";
        eval("init();document.location.href='" + nombre + "';");
    } // if-else
}


/////////////////////////////////////////////////////////////////
// diasMes
// Devuelve los dias que tiene un mes
//
//
function diaMes(mes,anyo) {

        switch(mes) {
                case '1':
                case '3':
                case '5':
                case '7':
                case '8':
                case '10':
                case '12':return '31';
                case '4':
                case '6':
                case '9':
                case '11':return '30';
                case '2':return(anyoBisiesto(anyo)?'29':'28');
        } // switch

}

/**
    * funcion para comprobar si una año es bisiesto
    * argumento anyo > año extraido de la fecha introducida por el usuario
    */
    function anyoBisiesto(anyo)
    {

        /*
        * primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
        * es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
        */
        if (anyo % 4 != 0)
            return false;
        else
        {
            if (anyo % 100 == 0)
            {
                /**
                * si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
                */
                if (anyo % 400 == 0)
                {
                    return true;
                }
                /**
                * si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
                */
                else
                {
                    return false;
                }
            }
            /**
            * si es divisible por 4 y no es divisible por 100 > el año es bisiesto
            */
            else
            {
                return true;
            }
        }
    }



function actualizaCheck(valorCampo,nombreAux){
	if (valorCampo=='S')
		document.forms[0].elements[nombreAux].checked="true";
}

/**
 * 30-03-2005 Cambiada por problemas de funcionamiento cuando "nombreCheck" no es array
 */
function seleccionaCheck(valorCampo,nombreCheck){
  if ( document.forms[0].elements[nombreCheck].length ) {
    for ( i=0; i<document.forms[0].elements[nombreCheck].length; i++ ) {
      if ( document.forms[0].elements[nombreCheck][i].value==valorCampo ) {
        document.forms[0].elements[nombreCheck][i].checked=true;
        break;
      }
    }
  } else {
    if ( document.forms[0].elements[nombreCheck].value==valorCampo ) {
      document.forms[0].elements[nombreCheck].checked=true;
    }
  }
}


/**
 * Clara: 13-04-2005
 * Nueva función para el caso de que haya varios formularios iguales
 */
function seleccionaCheckEnForm( valorCampoCheck, nombreCampoCheck,
                                valorCampoBusqueda, nombreCampoBusqueda ) {

  encontrado = 0;
  numForm = 0;
  for ( j=0; (j<document.forms.length) && (encontrado==0); j++ ) {
    for ( k=0; (k<document.forms[j].elements.length) && (encontrado==0); k++ ) {
      if ( (document.forms[j].elements[k].name==nombreCampoBusqueda) &&
           (document.forms[j].elements[k].value==valorCampoBusqueda) ) {
        numForm = j;
        encontrado = 1;
        break;
      }
    }
  }

  if ( encontrado == 1 ) {
    if ( document.forms[numForm].elements[nombreCampoCheck].length ) {
      for ( i=0; i<document.forms[numForm].elements[nombreCampoCheck].length; i++ ) {
        if ( document.forms[numForm].elements[nombreCampoCheck][i].value==valorCampoCheck ) {
          document.forms[numForm].elements[nombreCampoCheck][i].checked=true;
          break;
        }
      }
    } else {
      if ( document.forms[numForm].elements[nombreCampoCheck].value==valorCampoCheck ) {
        document.forms[numForm].elements[nombreCampoCheck].checked=true;
      }
    }
  }
}


/**
 * 30-03-2005 Cambiada por problemas de funcionamiento cuando no es array
 */
function seleccionaRadio(solicitado,aprobado,valorCampo) {
	var nombreCampo1="";
	var nombreCampo2="";
	if (solicitado=='SOLICITADO') nombreCampo1="solAux";
	if (aprobado=='APROBADO') nombreCampo2="aprAux";

  if (nombreCampo1!="") {
    if ( document.forms[0].elements[nombreCampo1].length ) {
      for (i=0;i<document.forms[0].elements[nombreCampo1].length;i++){
        if (document.forms[0].elements[nombreCampo1][i].value==valorCampo){
          document.forms[0].elements[nombreCampo1][i].checked=true;
          break;
        }
      }
		} else {
      if (document.forms[0].elements[nombreCampo1].value==valorCampo){
        document.forms[0].elements[nombreCampo1].checked=true;
      }
	  }
  }

	if (nombreCampo2!="") {
    if ( document.forms[0].elements[nombreCampo2].length ) {
		  for (i=0;i<document.forms[0].elements[nombreCampo2].length;i++){
			  if (document.forms[0].elements[nombreCampo2][i].value==valorCampo){
          document.forms[0].elements[nombreCampo2][i].checked=true;
          break;
			  }
	  	}
		} else {
      if (document.forms[0].elements[nombreCampo2].value==valorCampo){
        document.forms[0].elements[nombreCampo2].checked=true;
      }
	  }
	}
}

/**
 * 07-04-2005 Cambiada por problemas de funcionamiento cuando no es array
 */
function seleccionaRadioAprobado(aprobado,valorCampo){
	var nombreCampo=""
	if (aprobado=='APROBADO')
		nombreCampo='aprAux'

	if (nombreCampo!=''){

    if ( document.forms[0].elements[nombreCampo].length ) {
      for (i=0;i<document.forms[0].elements[nombreCampo].length;i++){
        if (document.forms[0].elements[nombreCampo][i].value==valorCampo){
          document.forms[0].elements[nombreCampo][i].checked=true;
          break;
        }
      }
		} else {
      if (document.forms[0].elements[nombreCampo].value==valorCampo){
        document.forms[0].elements[nombreCampo].checked=true;
      }
	  }

	}
}

/**
 * Clara: 13-04-2005
 * Nueva función para el caso de que haya varios formularios iguales
 */
function seleccionaRadioAprobadoEnForm( aprobado, valorCampo,
                                valorCampoBusqueda, nombreCampoBusqueda ) {

	var nombreCampo="";
	if ( aprobado=='APROBADO' ) {
		nombreCampo='aprAux';
  }

  encontrado = 0;
  numForm = 0;

	if ( nombreCampo != '' ) {

    for ( j=0; (j<document.forms.length) && (encontrado==0); j++ ) {
      for ( k=0; (k<document.forms[j].elements.length) && (encontrado==0); k++ ) {
        if ( (document.forms[j].elements[k].name==nombreCampoBusqueda) &&
             (document.forms[j].elements[k].value==valorCampoBusqueda) ) {
          numForm = j;
          encontrado = 1;
          break;
        }
      }
    }

    if ( encontrado == 1 ) {
      if ( document.forms[numForm].elements[nombreCampo].length ) {
        for ( i=0; i<document.forms[numForm].elements[nombreCampo].length; i++ ) {
          if ( document.forms[numForm].elements[nombreCampo][i].value==valorCampo ) {
            document.forms[numForm].elements[nombreCampo][i].checked=true;
            break;
          }
        }
      } else {
        if ( document.forms[numForm].elements[nombreCampo].value==valorCampo ) {
          document.forms[numForm].elements[nombreCampo].checked=true;
        }
      }
	  }

	}

}

////////////////////////////////////////////////////////////////
// abrirEnVentana
// Descripción: Abre nueva ventana de navegador
// Argumentos : nombreVentana -> Nombre de la ventana
//              ancho         -> Tamaño en horizontal
//              alto          -> Tamaño en vertical
//
function abrirEnVentana(nombreVentana, ancho, alto) {
  window.open('',nombreVentana, 'height=' + alto + ',width=' + ancho + ',resizable=no,toolbar=no,titlebar=no,scrollbars=yes');
  return true;
}




