/*
-----------------------------------------------------------------------------
File............: vrivas.js
Author..........: Victor Manuel Rivas Santos (vrivas@ujaen.es)
Date............: 17-Nov-2000
Description.....: Very generical functions in JavaScript
MOdificactions..:
=========== 1 ===========
Author..........:
Date............:
Description.....:
----------------------------------------------------------------------------
*/

//var URL_BASE="http://wwwdi.ujaen.es/~vrivas/";
//var URL_BASE="http://www.VictorRivasSantos.com/";
var URL_BASE="http://www.VRivas.es/";
var MI_MAIL="vrivas"+"@"+"ujaen.es";
var MENU_PRINCIPAL=1;
var MENU_DOCENCIA=2;
var MENU_INVESTIGACION=3;
var MENU_CURRICULUM=4;
//var MENU_SOBRE_MI=5;
var MENU_PRIVADO=5;
var MESES=new Array( "enero","febrero","marzo","abril","mayo","junio",
			"julio","agosto","septiembre","octubre","noviembre",
			"diciembre" );
var DIA_SEMANA=new Array( "domingo","lunes","martes","miércoles","jueves",
			  "viernes","sábado");
var variable_tmp_1=new Date( 2003,9,22, 0,0);
var variable_tmp_2=new Date( 2003,9,23, 0,0);
var UN_DIA=variable_tmp_2-variable_tmp_1;
var NO_INGLES=true;
var NO_ESPANIOL=true;
//*******************************
function d( something ) // document.writeS something
//*******************************
{
  document.write( something );
}

//********************************
function dln( something ) // document.writelnS something
//*******************************
{
  document.writeln( something );
}



//********************************
function hidden() // 
// returns wether ?HIDDEN is present at location.search
//*******************************
{
  return( location.search=="?HIDDEN" );
}


//********************************
function bdln( something ) // boolean.document.writelnS something
// writes only if ?SHOW is appended to the URL
//*******************************
{
  if( hidden() ) {
     document.writeln( something );
  }
}


//********************************
function telefono() // alerts the telephone numbers
//*******************************
{
  location.href=location.href+"#pie";
  alert( "[Teléfonos   ---   Telephones]\n\n"+
	 "(+34) 953 21 23 44\n"+
	 "(+34) 953 21 22 02" );
}

//********************************
function direccion() // alerts the postal address
//*******************************
{
  alert( "[Dirección   ---   Address]\n"+"\n"+
	 "Victor Manuel Rivas Santos"+"\n"+
	 "Dpto. de Informática"+"\n"+
	"Area de Lenguajes y Sistemas Informáticos"+"\n"+
	"E.P.S. de Jaén, Universidad de Jaen"+"\n"+
	"Edif. A3. Campus las Lagunillas"+"\n"+
	"E23071, Jaen (Spain)" );
}

//********************************
function fax() // fax
//*******************************
{
  alert( "[FAX]\n\n"+
	 "Victor Manuel Rivas Santos"+"\n"+
	 "Dpto. de Informática"+"\n"+
	"(+34) 953 21 24 20" );
}



//*********************************
function cabecera3( linea_1_1, linea_1_2, linea_2_1,
		linea_2_2, autorizacion, sel_menu )
//*********************************
{

  dln( "<TABLE COLS=10 WIDTH='100%' CELLPADDING=1 CELLSPACING=0 BORDER=0 ROWS=3>" );
  dln("<TR>" );
  dln( "<TD COLSPAN='1' ALIGN='center' WIDTH='20%' BGCOLOR=#ddd0d0>" );

  dln( "<FONT SIZE=-2 FACE='verdana,arial,helvetica'>" );
  dln( "<A HREF='http://www.ujaen.es'>Univ."+
	"de Jaén</A>" );
  dln( "</FONT>" );

  d( "</TD>" );
  d( "<TD COLSPAN='2' ROWSPAN=3 ALIGN='center' WIDTH='20%' VALIGN=middle BGCOLOR=#f2d0d0> " );
  dln( "<FONT SIZE=-2 FACE='verdana,arial,helvetica'>" );
  d( mail( MI_MAIL )+"<BR><BR>" );
  d( "<A HREF='/escribeme.shtml'>"+MI_MAIL+"</A><BR><BR>" );
  d( "<A HREF='#pie'>Dirección / Address</A><BR>" );
  d( "<A HREF='#pie'>Teléfono / Telephone</A><BR>" );
  d( "<A HREF='#pie'>Fax</A><BR>" );
  dln( "</FONT>" );
  dln( "</TD>" );
/*
  if ( sel_menu ) {
         dln( "<TD COLSPAN='2' ROWSPAN=3 ALIGN='CENTER' VALIGN='center'  BGCOLOR=#ddd0d0> " );
	menu_ppal( sel_menu, "Ir a:" );
	dln( "</FONT>" );
	dln( "</TD>" );
	dln( "<TD COLSPAN='5' ROWSPAN=3 ALIGN='right' BGCOLOR=#ddd0d0> " );
  } else {
*/
	dln( "<TD COLSPAN='7' ROWSPAN=3 ALIGN='right' WIDTH='60%' BGCOLOR=#ddd0d0> " );
//  }



  if ( linea_1_1 ) {
    d( "<FONT SIZE='+1' COLOR='#c00000'> "+ linea_1_1 +"</FONT>");
  }
  if ( linea_1_2 ) {
    d( " "+"<FONT SIZE='+0' COLOR='#c00000'> / "+linea_1_2+"</FONT>" );
  }

  if ( linea_1_1 || linea_1_2 ) {
    dln( "<BR>" );
  }

  dln( "<FONT COLOR='#a00000'>" );
  if ( linea_2_1  ) {
    d( linea_2_1 );
  }
   if ( linea_2_1 && linea_2_2 ) {
    dln( " - " );
  }
  if ( linea_2_2 ) {
    d( linea_2_2 );
  }
  if ( linea_2_1 || linea_2_2 ) {
    dln( "<BR>" );
  }


  d( "</FONT>" );
  dln( "<BR><FONT SIZE=-2><B>Ir a:</B> " );
  dln( "<A HREF='"+URL_BASE+"' TARGET='_top'>Principal</A> | " );
  dln( "<A HREF='"+URL_BASE+"docencia'  TARGET='_top'>Docencia</A> | " );
  dln( "<A HREF='"+URL_BASE+"investigacion'  TARGET='_top'>Investigación</A> | " );
  //dln( "<A HREF='"URL_BASE+"curriculum' TARGET='_top'>Curriculum</A> | " );
  //dln( "<A HREF='"+URL_BASE+"sobre_mi' TARGET='_top'>Sobre mí</A> |" );
  dln( "<A HREF='"+URL_BASE+"buscar.shtml' TARGET='_top'>BUSCAR!</A>" );
  dln( "</FONT>" );
  d( "</TD></TR>" );

  dln("<TR>" );
  dln( "<TD COLSPAN='1' ALIGN='center' BGCOLOR=#ddd0d0>" );

  dln( "<FONT SIZE=-2 FACE='verdana,arial,helvetica'>" );
  dln( "<A HREF='http://wwwdi.ujaen.es'> ");
  dln( "<IMG SRC='"+URL_BASE+"imagen/di_ujaen.gif' WIDTH='70'");
  dln( "HEIGHT='60' ALT='Departamento de Informática' BORDER='0'></A>" );
  dln( "</TD></TR>" );
  dln( "<TR>" );
  dln( "<TD COLSPAN='1' ALIGN='center' BGCOLOR=#ddd0d0>" );

  dln( "<FONT SIZE=-2 FACE='verdana,arial,helvetica'>" );
  dln( "<A HREF='http://wwwdi.ujaen.es'>Dpto."+
	"Informática</A>" );

  d( "</TR>" );
  d( "</TABLE>" );
  if ( autorizacion ) {
    d( "<TABLE WIDTH='100%'>" );
    d( "<TR>" );
    //d( "<TD WIDTH='75%'><HR></TD>" );
    d( "<TD WIDTH='75%'>" );
    d( "<IMG SRC="+URL_BASE+"imagen/linea_azul.jpg WIDTH=100% HEIGHT=2 BORDER=0 ALIGN=top>" );	
    d( "</TD>" );
    d( "<TD ALIGN='center' BGCOLOR='#e2d0d0'>" );
    d( "<FONT SIZE='-1'><B>"+autorizacion+"</B></FONT>" );
    d( "</TD>" );
    d( "</TR>" );
    d( "</TABLE>" );
  } else {
    d( "<IMG SRC="+URL_BASE+"imagen/linea_azul.jpg WIDTH=100% HEIGHT=2"+
       " ALIGN=top BORDER=0>" );	
  }
} // cabecera




//*********************************
function cabecera( linea_1_1, linea_1_2, linea_2_1,
		linea_2_2, autorizacion, sel_menu )
//*********************************
{

  dln( "<TABLE WIDTH='100%' CELLPADDING=1 CELLSPACING=0 BORDER=0>" );
  dln("<TR>" );
  dln( "<TD COLSPAN='1' WIDTH='100%' BGCOLOR=#1010a0 VALIGN='top'>" );
  dln( "<TABLE WIDTH='100%' CELLPADDING=2 CELLSPACING=0 BORDER=0 BGCOLOR=#ffffff>" );
  dln("<TR style='background-color: #aa0;'>" );
  dln( "<TD WIDTH=50% VALIGN=top>" );
  dln( "<FONT SIZE=-2 FACE='verdana,arial,helvetica'>" );
  dln( "<A HREF='http://www.ujaen.es' TARGET='_new'>Univ. de Jaén</A> > " );
  dln( "<A HREF='http://wwwdi.ujaen.es' TARGET='_new'>Dpto. de Informática</A>"+
       "<BR>");
  d( mail( MI_MAIL )+"<BR>" );
  dln( "</FONT>" );

  d( "</TD>" );
  dln( "<TD ALIGN='right' WIDTH='50%' BGCOLOR=#ffffff VALIGN=top> " );
//  }


  if ( linea_1_1 ) {
    d( "<FONT SIZE='+1' COLOR='#c00000'> "+ linea_1_1 +"</FONT>");
  }
  if ( linea_1_2 ) {
    d( " "+"<FONT SIZE='+0' COLOR='#c00000'> / "+linea_1_2+"</FONT>" );
  }

  if ( linea_1_1 || linea_1_2 ) {
    dln( "<BR>" );
  }

  dln( "<FONT COLOR='#a00000'>" );
  if ( linea_2_1  ) {
    d( linea_2_1 );
  }
   if ( linea_2_1 && linea_2_2 ) {
    dln( " - " );
  }
  if ( linea_2_2 ) {
    d( linea_2_2 );
  }
  if ( linea_2_1 || linea_2_2 ) {
    dln( "<BR>" );
  }


  d( "</FONT>" );
  d( "</TD></TR>" );
  dln( "<TR><TD WIDTH=50% COLSPAN=1 BGCOLOR=#eeeeff>" );
  dln( "<FONT SIZE=-2 FACE='verdana,arial,helvetica'>" );
  dln( "<A HREF='"+URL_BASE+"'>Principal</A> - ");
  dln( "<A HREF='"+URL_BASE+"docencia'>Docencia</A> - ");
  dln( "<A HREF='"+URL_BASE+"investigacion'>Investigación</A> - ");
  //dln( "<A HREF='"+URL_BASE+"sobre_mi'>Sobre mí</A>");
  dln( "</TD><TD WIDTH=50% COLSPAN=1 BGCOLOR=#eeeeff ALIGN=right>" );
  dln( "<FONT SIZE=-2>" );
  dln( "<FORM method=GET action=http://www.google.com/u/victorrivas>"+
       //         "<A HREF=http://www.google.com/>"+
       // '<IMG SRC="http://www.google.com/logos/Logo_40wht.gif" border=0'+
       //  'ALT="Buscar con Google" WIDTH="100" ALIGN="left"></A>'+
       '<FONT SIZE="-2">'+
         'Busca: <INPUT TYPE=text name=q size=7 maxlength=255 value="">'+
'<input type=hidden name=hq value="inurl:wwwdi.ujaen.es/~vrivas">'+
         '<font face=verdana,arial,sans-serif size=-1>'+
          '<input type=hidden name=domains value="wwwdi.ujaen.es">'+
       //          '<input type=radio name=sitesearch value="">Internet '+
          '<input type=hidden name=sitesearch value="wwwdi.ujaen.es">'+
       //'<input type=image src="/~vrivas/imagenes/lupa.gif">'+
       //'<INPUT type=submit name=sa VALUE="Buscar">'+
       '</FORM>' );
  dln( "</TD></TR>" );
  d( "</TABLE>" );
  dln( "</TD></TR></TABLE>" );

} // cabecera2


//********************************
function pie2() // foot
//*******************************
{
  dln( "<A NAME='pie'>" );
  solo_linea( "100%", 2 );
  d( "<TABLE WIDTH='100%' BORDER=0>" );
  d( "<TR>" );
  d( "<TD ALIGN=left BGCOLOR=#FFFFFF>" );
  d( "<B><FONT COLOR=#801010>V</FONT>íctor "+
	"<FONT COLOR=#801010>M</FONT>anuel "+
	"<FONT COLOR=#801010>R</FONT>ivas "+
	"<FONT COLOR=#801010>S</FONT>antos</B>" );
  d( "</TD><TD ALIGN='right'>" );
  //d( "<FONT FACE='verdana,arial.helvetica'>www.VictorRivasSantos.com</FONT></TD>");
  d( "<FONT FACE='verdana,arial.helvetica'>www.vrivas.es</FONT></TD>");
  d( "<FONT SIZE='-1'>" );
  d( "<A HREF='http://wwwdi.ujaen.es'>Dpto. de Informática</A><BR>" );
  d( "Area de Lenguajes y Sistemas Informáticos<BR>" );
  d( "<A HREF=http://eps.ujaen.es>EPS de Jaén</A>, <A HREF=http://www.ujaen.es>Universidad de Jaén</A><BR>" );
  d( "Edif. A3. Campus Las Lagunillas<BR>" );
  d( "23071, Jaén (Spain)" );
  d( "</TD>" );
  d( "<TD ALIGN=right BGCOLOR=#FFFFFF>" );
  d( "Mail: "+mail( MI_MAIL )+"<BR>" );
  //d( "Mail: <A HREF='/~vrivas/escribeme.shtml'>"+MI_MAIL+"</A><BR>" );
  d( "<FONT SIZE='-1'>" );
  d( "<U>Tef</U>: +34 953 21 23 44 <BR>" );
//  d( "<U>Tef</U>: +34 953 21 22 02 (Lagunillas)<BR>" );
  d( "<U>Fax</U>: +34 953 21 24 20<BR>" );
//  d( "<HR WIDTH='15%' ALIGN='right'>" );
  d( "<FONT SIZE=-1>" );
  d( "<U>Despacho</U>: A3-121" );
  d( "</FONT></TD>" );
  d( "</TR>" );
  dln( "<TR><TD COLSPAN=2>" );
  d( "<HR WIDTH='15%' ALIGN='left'>" );
  dln( "<FONT SIZE=-1>");
  dln( "<EM>Miembro de los Grupos de Investigación </EM><A HREF='http://geneura.ugr.es'>GeNeura Team</A> y " );

  dln(" <A HREF='http://simidat.ujaen.es'>SIMIDAT</A>" );
  dln( " y la Red de Excelencia <A HREF='http://neo.lcc.uma.es/RADI-AEB/radi-aeb.html'>RADI-AEB</A>" );
  dln( "</FONT>" );
  d( "</TABLE>" );
} // pie


//********************************
function pie() // foot
//*******************************
{
  dln( "<A NAME='pie'>" );
  //  solo_linea( "100%", 2 );
  dln( "<TABLE WIDTH='100%' CELLPADDING=1 CELLSPACING=0 BORDER=0>" );
  dln("<TR>" );
  dln( "<TD COLSPAN='1' WIDTH='100%' BGCOLOR=#1010a0 VALIGN='top'>" );
  dln( "<TABLE WIDTH='100%' CELLPADDING=2 CELLSPACING=0 BORDER=0 BGCOLOR=#ffffff>" );
  dln("<TR>" );
  d( "<TD ALIGN=left BGCOLOR=#eeeeFF COLSPAN=1>" );
  d( "<B><FONT COLOR=#801010>V</FONT>íctor "+
	"<FONT COLOR=#801010>M</FONT>anuel "+
	"<FONT COLOR=#801010>R</FONT>ivas "+
	"<FONT COLOR=#801010>S</FONT>antos</B>" );
  d( "</TD><TD ALIGN='right' BGCOLOR=#eeeeFF >" );
  //d( "<FONT FACE='verdana,arial,helvetica' SIZE=-2>www.VictorRivasSantos.com</FONT></TD>");
  d( "<FONT FACE='verdana,arial,helvetica' SIZE=-2>www.vrivas.es</FONT></TD>");
  dln( "</TD></TR><TR><TD BGCOLOR='#ffffff' valign=top>" );
  d( "<FONT SIZE='-1'>" );
  d( "<A HREF='http://wwwdi.ujaen.es'>Dpto. de Informática</A><BR>" );
  d( "Area de Lenguajes y Sistemas Informáticos<BR>" );
  d( "<A HREF=http://eps.ujaen.es>Esc. Polit. Superior</A>, <A HREF=http://www.ujaen.es>Universidad de Jaén</A><BR>" );
  d( "Edif. A3. Campus Las Lagunillas. " );
  d( "23071, Jaén (Spain)" );
  d( "</TD>" );
  d( "<TD ALIGN=right BGCOLOR=#FFFFFF valign=top>" );
  d( "<FONT SIZE='-1'>" );
  d( "Mail: "+mail( MI_MAIL )+"<BR>" );
  //  d( "Mail: <A HREF='/~vrivas/escribeme.shtml'>"+MI_MAIL+"</A><BR>" );
  d( "<U>Tef</U>: +34 953 21 23 44<BR>" );
//  d( "<U>Tef</U>: +34 953 21 22 02 (Lagunillas)<BR>" );
  d( "<U>Fax</U>: +34 953 21 24 20<BR>" );
//  d( "<HR WIDTH='15%' ALIGN='right'>" );
  d( "<FONT SIZE=-1>" );
  d( "<U>Despacho</U>: A3-121" );
  d( "</FONT></TD>" );
  d( "</TR>" );
  dln( "<TR><TD COLSPAN=2>" );
  d( "<HR WIDTH='15%' ALIGN='left'>" );
  dln( "<FONT SIZE=-1>");
  dln( "<EM>Miembro de los Grupos de Investigación </EM><A HREF='http://geneura.ugr.es' TARGET='_otro'>GeNeura Team</A> y " );
  dln(" <A HREF='http://www.juntadeandalucia.es/educacionyciencia/dgui/scripts/pai/pai2001/ficha.asp?x_grupo=4449' TARGET='_otro'>Sistemas Inteligentes</A>" );
  dln( " y la Red de Excelencia <A HREF='http://neo.lcc.uma.es/RADI-AEB/radi-aeb.html'>RADI-AEB</A>" );
  dln( "</FONT>" );
  d( "</TD></TR></TABLE>" );
  d( "</TD></TR></TABLE>" );
} // pie



//********************************
function referencia( _cad )
//*******************************
{
  d( ((!_cad )?location.href:_cad).link( location.href  ));
}


// *********************************
function mail_jpg( _w, _h ) 
// *********************************
{
  dln( "<A HREF='/~vrivas/escribeme.shtml'><IMG SRC=/~vrivas/imagen/vrivas.jpg BORDER=0 WIDTH="+_w+" HEIGHT="+_h+"></A>" );
}  // mail_jpg


// **********************************
function linea_separadora()
// ********************************
{
  dln( "<P ALIGN=right>" );
  mail_jpg( 110,30 );
  dln( "<BR><IMG SRC=/~vrivas/imagen/linea_azul.jpg ALIGN=top BORDER=0 WIDTH=100% HEIGHT=1></P>" );
}


// **********************************
function solo_linea(_w,_h)
// ********************************
{
  dln( "<IMG SRC=/~vrivas/imagen/linea_azul.jpg ALIGN=top BORDER=0 WIDTH="+_w+" HEIGHT="+_h+">" );
}



//*********************************
function cabecera_no_depto( linea_1_1, linea_1_2, linea_2_1, linea_2_2, autorizacion )
//*********************************
{
  
  dln( "<TABLE COLS=10 WIDTH='100%' CELLPADDING=1 CELLSPACING=0 BORDER=0>" );
  dln("<TR>" );
  d( "<TD COLSPAN='7' ALIGN='right' BGCOLOR=#ddd0d0> " );

  if ( linea_1_1 ) {
    d( "<FONT SIZE='+2' COLOR='#FF0000'> "+ linea_1_1 );
  }
  if ( linea_1_2 ) {	
    d( " "+"<FONT SIZE='+1'>(<EM>"+linea_1_2+"</EM>)</FONT>" );
  }

  if ( linea_1_1 || linea_1_2 ) {
    dln( "<BR>" );
  }

  if ( linea_2_1  ) {
    d( linea_2_1 );
  }
   if ( linea_2_1 && linea_2_2 ) {
    dln( " - " );
  }
  if ( linea_2_2 ) {
    d( linea_2_2 );
  }
  if ( linea_2_1 || linea_2_2 ) {
    dln( "<BR>" );
  }


  d( "</FONT>" );
  d( "</TD>" );
  d( "</TR>" );
  d( "</TABLE>" );
  if ( autorizacion ) {
    d( "<TABLE WIDTH='100%'>" );
    d( "<TR>" );
    //d( "<TD WIDTH='75%'><HR></TD>" );
    d( "<TD WIDTH='75%'>" );
    d( "<IMG SRC="+URL_BASE+"imagen/linea_azul.jpg WIDTH=100% HEIGHT=2 BORDER=0 ALIGN=top>" );	
    d( "</TD>" );
    d( "<TD ALIGN='center' BGCOLOR='#FFAAAA'>" );
    d( "<FONT SIZE='-1'><B>"+autorizacion+"</B></FONT>" );
    d( "</TD>" );
    d( "</TR>" );
    d( "</TABLE>" );
  } else {
    d( "<IMG SRC="+URL_BASE+"imagen/linea_azul.jpg WIDTH=100% HEIGHT=2 BORDER=0 ALIGN=top>" );	
    //dln( "<HR>" );
  }
} // cabecera_no_depto

/*
-------------------------------------------------------------
function menu_ppal()
 Menu de las páginas principales
--------0-----------------------------------------------------
*/
function menu_ppal( sel, _msje ) {
  var c=0;
        dln( "<FORM NAME=menu BGCOLOR=white>" );
	dln( "<FONT SIZE='-1'>"+_msje );
         dln( "<SELECT NAME=s1 ONCHANGE='go_menu("+sel+")'>" );
         dln( "<OPTION VALUE='"+URL_BASE+"'>"+selecc(sel,MENU_PRINCIPAL,"Principal") );
         dln( "<OPTION VALUE='"+URL_BASE+"docencia'>"+selecc( sel,MENU_DOCENCIA,"Docencia") );
         dln( "<OPTION VALUE='"+URL_BASE+"investigacion'>"+selecc( sel, MENU_INVESTIGACION,"Investigacion") );
         dln( "<OPTION VALUE='"+URL_BASE+"curriculum'>"+selecc( sel, MENU_CURRICULUM,"Curriculum" ));
         //dln( "<OPTION VALUE='"+URL_BASE+"sobre_mi'>"+selecc( sel, MENU_SOBRE_MI, "Sobre Mí" ));
         //dln( "<OPTION VALUE='"+URL_BASE+"privado'>"+selecc( sel,MENU_PRIVADO,"[Privado]" ));
        dln( "</SELECT></FONT></FORM>" );
  document.menu.s1.selectedIndex=sel-1;   
}

/*
----------------------------------------------------------------
function go_menu
----------------------------------------------------------------
*/
function go_menu( sel ) {
  var s=document.menu.s1;
  if ( sel!=s.selectedIndex+1 ) {
	  location.href=s.options[s.selectedIndex].value;
  }
}

/*
----------------------------------------------------------------
function selecc
----------------------------------------------------------------
*/

function selecc( sel, c, cad ) {
  return ((sel==c)?"- ":"")+cad+((sel==c)?"- ":"");
}

/*
----------------------------------------------------------------
function fecha_dd_mmm_aaaa
----------------------------------------------------------------
*/
function fecha_dd_mmm_aaaa( _date ) {
  var d;
  
  if ( _date ){
  	d=new Date(_date);
  } else {
  	d=new Date();
  }
  

  var s="";
  var t=d.getDate();
//  s=(t<10)?"0"+t:t;
  s=t;

  t=d.getMonth();
  s=s+"-"+capitalize( MESES[t].substr(0,3));
  t=anio_es( d );
  s+="-"+t;

  return s;
}	

/*
----------------------------------------------------------------
function fecha_w_dd_mmm_aaaa
----------------------------------------------------------------
*/
function fecha_w_dd_mmm_aaaa( _date ) {
  var d=new Date((_date)?_date:null);
  var s=capitalize( DIA_SEMANA[d.getDay()] )+", "+fecha_dd_mmm_aaaa( d );
  return s;
}	

function anio_es ( _date ) {
  var d=new Date();
  if ( _date ) d.setTime( _date.getTime() );
  var tmp=0;
  if ( isNetscape() ) {
	tmp=1900;
  }
  return (tmp+d.getYear());
}

/*
---------------------------------------------------------------
Algoritmo de ordenacion de matrices por el metodo de la burbuja.
@param _matriz  Matriz a ordenar.
@param _campo   Nombre del campo por el que ordenar.
@return         La matriz ordenada.
---------------------------------------------------------------
*/
function burbuja( _matriz, _campo ) {
  var tmpPos;
  for( var i=0; i<_matriz.length; ++i ) {
    for( var j=i+1; j<_matriz.length; ++j ) {
       if ( eval( "_matriz[i]."+_campo )>eval( "_matriz[j]."+_campo ) ) {
         tmpPos=_matriz[i];
         _matriz[i]=_matriz[j];
         _matriz[j]=tmpPos;
       }
    }
  }
  return _matriz;
};


/*
---------------------------------------------------------------
Algoritmo de ordenacion de matrices por el metodo de la burbuja.
@param _matriz  Matriz a ordenar.
@param _campo1   Nombre del 1er campo por el que ordenar.
@param _campo2   Nombre del 2º campo por el que ordenar.
@return         La matriz ordenada.
---------------------------------------------------------------
*/
function burbuja_2( _matriz, _campo1, _campo2 ) {
  var tmpPos;
  for( var i=0; i<_matriz.length; ++i ) {
    for( var j=i+1; j<_matriz.length; ++j ) {
       if ( eval( "_matriz[i]."+_campo1 )>eval( "_matriz[j]."+_campo1 ) ) {
         tmpPos=_matriz[i];
         _matriz[i]=_matriz[j];
         _matriz[j]=tmpPos;
       } else {
	  if ( 
		(eval( "_matriz[i]."+_campo1 )==eval( "_matriz[j]."+_campo1 )) 
		&& 
		(eval( "_matriz[i]."+_campo2 )>eval( "_matriz[j]."+_campo2 )) 
	     ) {
            tmpPos=_matriz[i];
            _matriz[i]=_matriz[j];
            _matriz[j]=tmpPos;
          } 
      }
    }
  }
  return _matriz;
};

/*
---------------------------------------------------------------
Algoritmo para seleccionar los elementos de una matriz cuyo
determinado campo tenga un determinado valor o esté en un rango
@param _matriz  Matriz con los elementos
@param _campo   Nombre del campo por el que seleccionar
@param _valor1	Valor buscado o inicial del rango
@param _valor2	Valor final del rango (opcional)
@return         La submatriz con los elementos buscados.
---------------------------------------------------------------
*/

function select( _matriz, _campo, _valor1, _valor2 ) {
  if ( _valor2 ) {
	return select_range( _matriz, _campo, _valor1, _valor2 );
  } else {
	return select_equal( _matriz, _campo, _valor1 );
  }
}


/*
---------------------------------------------------------------
Algoritmo para seleccionar los elementos de una matriz cuyo
determinado campo tenga un determinado valor.
@param _matriz  Matriz con los elementos
@param _campo   Nombre del campo por el que seleccionar
@param _valor	Valor buscado.
@return         La submatriz con los elementos buscados.
---------------------------------------------------------------
*/

function select_equal( _matriz, _campo, _valor ) {
  var tmpMat=new Array;
  for( var i=0; i<_matriz.length; ++i ) {
    if( eval( "_matriz[i]."+_campo )==_valor ) {
      tmpMat[tmpMat.length]=_matriz[i];
    }
  }

  return tmpMat;
};

/*
---------------------------------------------------------------
Algoritmo para seleccionar los elementos de una matriz cuyo
determinado campo este contenido en un rango de valores
@param _matriz  Matriz con los elementos
@param _campo   Nombre del campo por el que seleccionar
@param _valor1	Valor inicial.
@param _valor2	Valor final.
@return         La submatriz con los elementos buscados.
---------------------------------------------------------------
*/

function select_range( _matriz, _campo, _valor1, _valor2 ) {
  var tmpMat=new Array;
  if ( _valor2<_valor1 ) {
    alert( "ERROR EN SELECT_RANGE:\n"+
           "Valor inicial: "+_valor1+ " debe ser menor o igual\n"+
	   "que valor final: "+_Valor2 );
    return tmpMat;
  }

  for( var i=0; i<_matriz.length; ++i ) {
    if( eval( "_matriz[i]."+_campo )>=_valor1 &&
	eval( "_matriz[i]."+_campo )<=_valor2  ) {
      tmpMat[tmpMat.length]=_matriz[i];
    }
  }
  return tmpMat;
};

/*
 * Serializa matriz como valores separados por comas y espacios
 */
function serializar_matriz( _matriz ) {
  var tmp='';
  for( var i=0; i<_matriz.length-1; ++i ) {
    tmp+=_matriz[i]+", ";
  }
  tmp+=_matriz[_matriz.length-1];
  return tmp;

}



// Determina si el navegador es Netscape
function isNetscape() {
  return ( navigator.appName=="Netscape" || navigator.appName=="Konqueror" );
}


function split( _cad, _sep )  {
  var i=0;
  var a=new Array;
  var cont=0;
  var tmpCad="";
  while( i<=_cad.length) {
     tmpCad+=_cad.substr(i,1);
    if( _cad.substr(i+1, _sep.length)==_sep || i>=_cad.length ) {
      a[cont]=tmpCad;
      tmpCad="";
      i+=_sep.length;
      ++cont;
    }
    ++i;
  }
  return a;
}


/*
---------------------------------------------------------------
Algoritmo para dividir la parte search de una URL respecto a = y &
@param _p2w	Boolean: si true se llama a plus2white para cada cadena
@return         La parte SEARCH sin ? de la URL actual
---------------------------------------------------------------
*/


function search( _p2w ) {
 // Devuelve un amtriz con a[i]=campo, a[i+1]=valor
  var a=new Array();
  var b=new Array();
  var i,j;
  var cont=0;
  var tmp=location.search.substr( 1, 300 );
  b=split( tmp, "&" );
  for( i=0; i<b.length; ++i ) {
     var c=new Array();
     c=split( b[i], "=" );
     for( j=0; j<c.length; ++j ) {
       a[cont]=c[j];
       cont++;
     } 
  }
  return a;
}

/*
Esta función devuelve el valor de un campo en la parte search
*/
function value_of_param( _campo ) {
  var a=search( true );
  var i;
  for( i=0; i<a.length && a[i]!=_campo; ++i ){
  }	
  return (i<a.length)?a[i+1]:"";
}

/*
---------------------------------------------------------------
Algoritmo para cambiar en una cadena los + por " "
@param _cad     La cadena
@return         Lo dicho
---------------------------------------------------------------
*/

function plus2white( _cad ) {
  var tmp="";
  for( var i=0; i<_cad.length; ++i ) {
    tmp+=(_cad.substr(i,1)=="+")?" ":_cad.substr(i,1);
  }
  return tmp;
  
}


/*
---------------------------------------------------------------
Algoritmo para poner un enlace al mail
@param _cad     La cadena para pinchar en el enlace
@return         La cadena formada
---------------------------------------------------------------
*/

function mail( _cad ) {
  //return ( _cad.link( "/~vrivas/escribeme.shtml" ) );
  _cad=(_cad)?_cad:MI_MAIL;
  return ( _cad.link( "mailto:"+MI_MAIL ) );
}

/*
---------------------------------------------------------------
Algoritmo para poner un enlace al mail
@param _cad     La cadena para pinchar en el enlace
@return         La cadena formada
---------------------------------------------------------------
*/

function otro_mail( _cad ) {
  return ( _cad.link( "mailto:"+_cad ) );
}

/*
---------------------------------------------------------------
Función para pasar a mayúsculas una letra
@param _letra   La letra
@return         La misma letra en mayúsculas
---------------------------------------------------------------
*/
function up_char( _letra ) {
  if( _letra=='a' ) {
	return 'A';
  } else if ( _letra=='b' ) {
	return 'B';
  } else if ( _letra=='c' ) {
	return 'C';
  } else if ( _letra=='d' ) {
	return 'D';
  } else if ( _letra=='e' ) {
	return 'E';
  } else if ( _letra=='f' ) {
	return 'F';
  } else if ( _letra=='g' ) {
	return 'G';
  } else if ( _letra=='h' ) {
	return 'H';
  } else if ( _letra=='i' ) {
	return 'I';
  } else if ( _letra=='j' ) {
	return 'J';
  } else if ( _letra=='k' ) {
	return 'K';
  } else if ( _letra=='l' ) {
	return 'L';
  } else if ( _letra=='m' ) {
	return 'M';
  } else if ( _letra=='n' ) {
	return 'N';
  } else if ( _letra=='ñ' ) {
	return 'Ñ';
  } else if ( _letra=='o' ) {
	return 'O';
  } else if ( _letra=='p' ) {
	return 'P';
  } else if ( _letra=='q' ) {
	return 'Q';
  } else if ( _letra=='r' ) {
	return 'R';
  } else if ( _letra=='s' ) {
	return 'S';
  } else if ( _letra=='t' ) {
	return 'T';
  } else if ( _letra=='u' ) {
	return 'U';
  } else if ( _letra=='v' ) {
	return 'V';
  } else if ( _letra=='w' ) {
	return 'W';
  } else if ( _letra=='x' ) {
	return 'X';
  } else if ( _letra=='y' ) {
	return 'Y';
  } else if ( _letra=='z' ) {
	return 'Z';
  } else if ( _letra=='á' ) {
	return 'Á';
  } else if ( _letra=='é' ) {
	return 'É';
  } else if ( _letra=='í' ) {
	return 'Í';
  } else if ( _letra=='ó' ) {
	return 'Ó';
  } else if ( _letra=='ú' ) {
	return 'Ú';
  } else {
	return _letra;
  }

}

/*
---------------------------------------------------------------
Función para pasar a mayúsculas una cadena
@param _cad    La cadena
@return        La misma cadena en mayúsculas
---------------------------------------------------------------
*/
function toupper( _cad ) {
  var tmp="";
  for( var i=0; i<_cad.length; ++i ) {
    tmp+=up_char( _cad[i] );
	
  }
  return tmp;
}


/*
---------------------------------------------------------------
Función para pasar a mayúsculas la primera letra de una cadena
@param _cad    La cadena
@return        La misma cadena con la primera letra en mayúsculas
---------------------------------------------------------------
*/
function capitalize( _cad ) {
  if ( _cad ) {
	return (up_char( _cad.substr(0,1) )+_cad.substr(1, _cad.length ));
  } else {
	return "";
  }
	
//  return (_cad)?(up_char( _cad[0] )+_cad.substr(1, _cad.length )):"";
}




/*
---------------------------------------------------------------
Función para pasar los espacios a nbsp
@param _cad    La cadena
@return        La misma cadena en mayúsculas
---------------------------------------------------------------
*/
function tonbsp( _cad ) {
  var tmp="";
  for( var i=0; i<_cad.length; ++i ) {
    if ( _cad[i]==" " ) {
    	tmp+="&nbsp;";
    } else {
    	tmp+=_cad[i];
    }
  }
  return tmp;
}



/*
---------------------------------------------------------------
Calcula el porcentaje con respecto a 2 número y lo devuelve bonito
@param _cad    La cadena
@return        La misma cadena en mayúsculas
---------------------------------------------------------------
*/
function percentage( _num1, _num2 ) {
  var toRet=(_num1/_num2*100);
  toRet+=".00";
  var punto=-1;
  for( var i=0; i<toRet.length && punto<0 ; ++i ) {
    punto=( toRet[i]=='.' )?i:-1;
  }

  //  var toRet=toRet.substring(0,punto+3)+" %";
  
  return toRet;
}



function mas_cero( _num, _long ) {
  var cad=_num+"";
  cad=(cad=="")?"0":cad;
  // Localizo el punto
  var cont=0;
  while ( cad.substr(cont,1)!="." && cont<cad.length ) {
    cont++;
  }

  // Si el número es .algo
  if ( cont==0 ) {
    cad='0'+cad;
  }

  // Si el número no tiene punto
  if ( cont==cad.length ) {
    cad+=".";
  }
  
  // Completo con ceros por la derecha del punto
  while ( cad.length-cont <= _long ) {
      cad+="0";
  }
  
  // devuelvo el valor solicitado.
  return cad.substr( 0, cont+_long+1 );

}

function menos_cero( _cad ) {
	return( _cad.substr(0,1)=="0")?eval(_cad.substr(1,1)):eval(_cad );
}



function linea_p() {
 dln( '<P>' );
  dln( '<img src="/~vrivas/imagenes/negro.gif" width="100%" height="1">' );
  dln( '</P>' );
}
function linea() {
  dln( '<img src="/~vrivas/imagenes/negro.gif" width="100%" height="1">' );
 }

function cabecera_2004( _tit1, _tit2 ) {
dln("<DIV id='cabecera' >");
dln("<div id='titulo' style='float: left; background-color: none;'>");
if( _tit1 ) {
	dln(    '  	<span style="font-size: 140%; font-family: lucida; color: #222; font-weight: bold;">'+_tit1+'</span> ');
}
if( _tit2 ) {
	dln(    '  	<span style="font-size:larger; font-family: lucida; color: #222;"><SUB> | '+_tit2+'</SUB></span> ');
}

dln("</div>");
dln("<div id='uja'>");
dln(    '  	<span style="font-size:smaller; font-family: lucida; color: #222;"> ');
dln(	'<a class="especial" href="http://www.ujaen.es" target="_new"> ');
dln(    ' <img src="/~vrivas/imagenes/escudo_ujaen_gris.gif" width="25" height="25" align="middle" ');
dln(  'border="0"><BR>Universidad de Ja&eacute;n</A></span> ');
 
dln("</div>");

dln("<div id='depto'>");
dln(   '   	<span style="font-size:smaller; font-family: lucida; color: #222;"> ');
dln(   '        <a class="especial" href="http://wwwdi.ujaen.es" target="_new"> ');
dln(   ' <img src="/~vrivas/imagenes/logodi3d_gris.gif" width="25" height="25" align="middle" ');
dln(   ' border="0"><BR>Departamento de  Informática</A></span> ');
dln(	'</div>');
dln("</DIV>");
}

function cabecera_2004_en( _tit1, _tit2 ) {

dln("<DIV id='cabecera'>");
dln("<div id='titulo' style='float: left; background-color: none;'>");
if( _tit1 ) {
	dln(    '  	<span style="font-size: 140%; font-family: lucida; color: #222; font-weight: bold;">'+_tit1+'</span> ');
}
if( _tit2 ) {
	dln(    '  	<span style="font-size:larger; font-family: lucida; color: #222;"><SUB> | '+_tit2+'</SUB></span> ');
}

dln("</div>");
dln("<div id='depto' style='float: right;'>");
dln(   '   	<span style="font-size:smaller; font-family: lucida; color: #222;> ');
dln(   '        <a class="especial" href="http://wwwdi.ujaen.es" window="_new"> ');
dln(   ' <img src="/~vrivas/imagenes/logodi3d_gris.gif" width="25" align="middle" ');
dln(   ' border="0"> Department of Computer Science</A></span> ');
dln(	'&nbsp;&nbsp; ');
dln(    '  	<span style="font-size:smaller; font-family: lucida; color: #222;> ');
dln(	'<a class="especial" href="http://www.ujaen.es" window="_new"> ');
dln(    ' <img src="/~vrivas/imagenes/escudo_ujaen_gris.gif" width="25" align="middle" ');
dln(  'border="0">University of jaen</A></span> ');
 
dln("</div>");
dln("</DIV>");
}

function guion() {
		return( "<font color=black> &#9788; </font>" );
}
function pie_2004() {
dln( ' <TABLE   width="100%" cellspacing="5" border="0" cellpadding="0" align="center"> ' );
dln( '   <CAPTION></CAPTION> ' );
dln( '   <TBODY> ' );
dln( '   	<TR> ' );
dln( '  	<TD COLSPAN="2" bgcolor="black">'+
     '<img src="/~vrivas/imagenes/transparente.gif" width="100%" height="1">'+
     '</TD> ' );
dln( ' 	</TR> ' );
dln( '     <TR> ' );
dln( '       <TD align="center"> ' );
dln( ' 	<P> ' );
dln( ' 	&#8962;: <font color=#5050a0>A3-121</FONT></a>'+
			guion()+
			'&#9743;: <font color=#5050a0>+34 953 21 <B>2344</B></FONT></A>'+
			guion()+
			'F: <font color=#5050a0>+34 953 21 <b>2472</b></FONT></A>'+guion() );
//dln( ' 	class="especial" href="http://www.VictorRivasSantos.com"><font color="black">http://www.VictorRivasSantos.com</FONT></A>] ' );
dln( '<a class="especial" href="http://www.vrivas.es"><font color="#5050a0">www.vrivas.es</FONT></A>' );
dln( guion() );
document.writeln(  "<a class='especial' href='","mailto",":","","vr","ivas","@","ujae","n",".es'>","<font"+
  	" color='#5050a0'>vr","ivas","@","ujae","n",".es</font></a>" );
dln( "<BR>" );
dln("<A class='especial' HREF='http://simidat.ujaen.es/' target=_new><font color='#5050a0'>SIMIDAT</font></A>" );dln( "-" );
//dln(" [<A class='especial' HREF='http://www.juntadeandalucia.es/educacionyciencia/dgui/scripts/pai/pai2001/ficha.asp?x_grupo=4449' target=_new>Sistemas Inteligentes</A>] " );
dln( "<A class='especial' HREF='http://geneura.ugr.es'><font color='#5050a0'>GeNeura Team</font></A><br>" );
dln( "<A class='especial' style='font-size: 80%;' target='_new' HREF='http://www.jaen2015.es'>Jaen 2015</A><br>" );

  
dln( ' 	</P> ');
dln( ' 	</TD> ');
dln( '     </TR> ');
dln( '   </TBODY> ');
dln( ' </TABLE> ');
}




var separador_menu=' <font color="white">|</font> ';


function menu( _no_english ) {

dln( "<DIV id='menu'> " );
  dln( '<A class="" href="/~vrivas/">Principal</A>'+separador_menu );
  dln( '<A class="" href="/~vrivas/docencia">Docencia</A>'+separador_menu  );
  dln( '<A class="" href="/~vrivas/investigacion">Investigación</A>'+separador_menu  );
  //dln( '<A class="" href="/~vrivas/tutor">Tutor I. Informática</A>'+separador_menu  );
  //dln( '<A class="" href="/~vrivas/sobre_mi">Sobre mí</A>'+separador_menu  );
  //dln( '<A class="" href="/~vrivas/miscelanea.html">Miscelánea</A>'+separador_menu  );
  dln( '<A class="" href="/~vrivas/contactar.html">Contactar</A>' );
  if( !_no_english ) { dln( '<A class="" href="./index-en.shtml" style="float: right; font-size: smaller;">English</A>');  }
dln( "</DIV>" );
 }

function menu_en( _no_spanish ) {
  dln( "<table width=100%>" );
  dln( "<tr><td width=95%>" );
  dln( '<P align="center">' );
  dln( '<font size="-1">' );
  dln( '<A class="especial" href="/~vrivas/index-en.shtml">Home</A>'+separador_menu );
  //dln( '<A class="especial" href="/~vrivas/docencia/index-en.shtml">Teaching</A>'+separador_menu  );
  dln( '<A class="especial" href="/~vrivas/investigacion/index-en.shtml">Research</A>'+separador_menu  );
  //dln( '<A class="especial" href="/~vrivas/tutor/index-en.shtml">Computer Science Degree</A>'+separador_menu  );
  //dln( '<A class="especial" href="/~vrivas/sobre_mi/index-en.shtml">About me...</A>'+separador_menu  );
  //dln( '<A class="especial" href="/~vrivas/miscelanea-en.html">Various</A>'+separador_menu  );
  dln( '<A class="especial" href="/~vrivas/contactar-en.html">Contact me</A>' );
  dln( '</font>' );
  dln( '</P>' );
  dln( "</TD>" );
  dln( "<td width=5%>" );
  dln( '<P align="right">' );
  dln( '<font size="-2">' );
  if ( !_no_spanish ) {dln( '<A class="especial" href="./index.shtml">Español</A>' );  }
  dln( "</font></TD></TR></TABLE>" );

  linea();
 }
