function public_insertar($conexion, $registro)
{  
  // definicion de globales
  global $public_tipo_links; 
  global $public_dir_docs;
  global $_FILES;

  //--------------------------------------------------------------------
  // COPIA/BORRA DOCUMENTO SI ESTÁ DEFINIDO
  //--------------------------------------------------------------------
  // fija link y nombre de documento
  $nombre_fichero = $public_dir_docs.$registro['id_ref_bibtex'].'.pdf';
  
  // verifica si insertamos uno nuevo
  if (isset($_FILES['fichero_pub']) && strlen($_FILES['fichero_pub']['name'])>0) {
   // admite solo pdfs
   if ($_FILES['fichero_pub']['type']=='application/pdf') {
     // copia fichero a directorio de curriculum renombrandolo
     copy($_FILES['fichero_pub']['tmp_name'],$nombre_fichero);
   }  
  }
  // verifica si existe interno y lo borramos si procede
  if (($registro['tipo_link'] != $public_tipo_links['Interno']) &&
     (file_exists($nombre_fichero)))
  {
    unlink($nombre_fichero);
  }
  //---------------------------------------------
  // Actualiza valores de la referencia
  //---------------------------------------------
  // prepara datos para insertar desde web
  $id_ref_bibtex = addslashes($registro['id_ref_bibtex']);
  if ($registro['tipo_link'] == $public_tipo_links['Externo']) {
      $link_refer = addslashes($registro['link_refer']);
    }
  else if (($registro['tipo_link'] == $public_tipo_links['Interno'])&&
           (file_exists($nombre_fichero)))
    {
      $link_doc_interno = 'docs/'.$registro['id_ref_bibtex'].'.pdf'; 
      $link_refer = $link_doc_interno;
    }  
  $publicar = (AUX_estado_es_visible($registro['estado']) == 1)?  1:0;
  
  // chequea si hay que insertar un nuevo registro o solo actualizarlo
  if ($registro['id_ref'] == 0) {
     // construye la consulta de Insercion
     $consulta_public ='INSERT INTO referencias(id_ref_bibtex, tipo, visible,'.
       ' tipo_link, link_referencia, idioma, estado, tipo_bibtex) VALUES("'.
       $id_ref_bibtex.'","'.$registro['tipo'].'", '.$publicar.', "'.
       $registro['tipo_link'].'", "'.$link_refer.'","'.$registro['idioma'].
       '","'.$registro['estado'].'", "'.$registro['tipo'].'")';
  }
  else {
     // construye la consulta de actualizacion
     $consulta_public = 'UPDATE referencias SET id_ref_bibtex="'.
       $id_ref_bibtex.'", tipo="'.$registro['tipo'].'", tipo_bibtex="'.
       $registro['tipo'].'", visible='.$publicar.', tipo_link="'.
       $registro['tipo_link'].'", link_referencia="'.$link_refer.
       '", idioma="'.$registro['idioma'].'", estado="'.$registro['estado']
       .'" WHERE id_referencia='.$registro['id_ref'];
  }
  
  // realiza consulta de miembro
  $resultado = mysql_query($consulta_public, $conexion);

  // si da error, devuelve 0
  if (!$resultado) {
   echo "Error de consulta ".$consulta_public;
   return 0;
  }

  // obtiene el valor del elemento insertado/actualizado
  if ($registro['id_ref'] == 0) {
     $id_referencia = mysql_insert_id(); 
     
     // inserta una referencia de campo nueva
     $consulta_id = 'SELECT MAX(id_campos) FROM ref_relacion';
     $resultado =  mysql_query($consulta_id, $conexion);
     $identificador_tmp = mysql_fetch_row($resultado);
     $id_campo = $identificador_tmp[0] + 1;
     
     $consulta_cross = 'INSERT INTO ref_relacion(id_ref,'.
      'id_campos, referencia_cruzada, id_ref_cruzada) VALUES('.
      $id_referencia.','.$id_campo.',0,0)';
      
     $resultado =  mysql_query($consulta_cross, $conexion);
     
     if (! $resultado) {
      echo "Error de consulta ".$consulta_cross;
      return 0;           
     }         
  }  
  else {
     $id_referencia = $registro['id_ref'];
     
     // obtiene el id_campos para el registro actualizado
     $consulta_id = 'SELECT id_campos FROM ref_relacion '.
      'WHERE referencia_cruzada=0 AND id_ref='.$id_referencia;
     $resultado =  mysql_query($consulta_id, $conexion);
     $identificador_tmp = mysql_fetch_row($resultado);
     $id_campo = $identificador_tmp[0];     
  }
  
  //---------------------------------------------  
  // Actualización de los campos de la referencia
  //---------------------------------------------
  // variables de fecha
  $fecha_publicacion = array();
  // variable de sobreescritura de tipo de busqueda
  $tipo_busqueda = $registro['tipo'];
  // array de campos
  $lista_campos = array();

  // insertar toda la informacion de los campos en un array
  for ($i=1; $i<= $registro['numero_campos'];$i++) {
    $campo = $registro["id_campo_c_$i"];
    $lista_campos[$campo]['borrar'] = $registro["id_campo_b_$i"];
    $lista_campos[$campo]['modificar'] = $registro["id_campo_m_$i"];
    $lista_campos[$campo]['valor'] = addslashes($registro["id_campo_t_$i"]);
  }
  
  // recorremos lista borrando todos los marcados como 'borrar' o 'modificar'
  // y actualizando el valor del resto
  foreach ($lista_campos as $campo => $valor) {
    if ($lista_campos[$campo]['borrar'] == 1) {
       // si campo es crossref, borramos el enlace
       if ($campo == 'crossref') {
          Borra_Crossref($id_referencia, $conexion);
       }
       
       // construye consulta de borrado
       $consulta_campo='DELETE FROM ref_campos WHERE id_campo_ref='.
         $id_campo.' AND campo="'.$campo.'"';
             
    } elseif ($lista_campos[$campo]['modificar'] == 1) {
        $campo_modificado = AUX_campo_renombrado($campo);

        // realiza consulta de borrado de las dos posibilidades de campo
        // !! si eres torpe y no te das cuenta, adios a uno de los campos !!!
        $consulta_campo='DELETE FROM ref_campos WHERE id_campo_ref='.
         $id_campo.' AND (campo="'.$campo.'" OR '.'campo="'.
         $campo_modificado.'")';
    } else {
       // si campo es crossref, actualizamos su valor
       if ($campo == 'crossref') {
          Borra_Crossref($id_referencia, $conexion);
          Inserta_Crossref($lista_campos[$campo]['valor'], $id_referencia, $conexion);
       }
       // construye consulta de update
       $consulta_campo='UPDATE ref_campos SET valor="'.
         $lista_campos[$campo]['valor'].'" WHERE id_campo_ref='.$id_campo.
         ' AND campo="'.$campo.'"';
      
       AUX_verifica_campos_especiales($campo, $lista_campos[$campo]['valor'],
          $fecha_publicacion, $tipo_busqueda);             
    }

    // ejecuta consulta para uno de los cuatro casos posibles
    $resultado = mysql_query($consulta_campo, $conexion);
      
    // si da error, saca un mensaje
    if (!$resultado) {
         echo "No se pudo ejecutar la consulta ".$consulta_campo;
    }    
  }  
  
  // por ultimo, recorre una ultima vez la lista para insertar
  // con el nuevo nombre aquellos campos que hayan sido renombrados
  foreach ($lista_campos as $campo => $valor) {
    if ($lista_campos[$campo]['modificar'] == 1) {
      $campo_modificado = AUX_campo_renombrado($campo); 
      
      // Verificamos gestion de crossref
      if ($campo_modificado == 'crossref') {
        Inserta_Crossref($lista_campos[$campo]['valor'], $id_referencia, $conexion);

      } else if ($campo_modificado == 'OPTcrossref') {
         Borra_Crossref($id_referencia, $conexion);
      }

      // construye consulta de insercion     
      $consulta_campo='INSERT INTO ref_campos(id_campo_ref, campo, valor) '.
         'VALUES ('.$id_campo.',"'.$campo_modificado.'","'.
         $lista_campos[$campo]['valor'].'")'; 
      // ejecuta consulta para uno de los tres casos posibles
      $resultado = mysql_query($consulta_campo, $conexion);
      
      // si da error, saca un mensaje
      if (!$resultado) {
         echo "No se pudo ejecutar la consulta ".$consulta_campo;
      }

       AUX_verifica_campos_especiales($campo_modificado, 
          $lista_campos[$campo]['valor'],$fecha_publicacion, $tipo_busqueda);          
    } 
  }  

  //------------------------------------------------------------  
  // inserta el nuevo campo si no existe ya y no está vacío.
  // Esto se tiene que hacer despues de haber procesado los demas
  // para poder chequear que no existe ya el nombre a insertar
  //------------------------------------------------------------
  
  if (strlen($registro["nuevo_campo"]) > 0) {
     $campo_existe = false;
     $nuevo_campo = $registro["nuevo_campo"];
     $campo_modificado = AUX_campo_renombrado($nuevo_campo);   
           
     // verifica que campo no existe
     if ((array_key_exists($nuevo_campo,$lista_campos)) AND 
        ($lista_campos["$nuevo_campo"]['modificar'] == 0) AND
        ($lista_campos["$nuevo_campo"]['borrar'] == 0))
      { $campo_existe = true;}
     
     // verifica que no se ha renombrado uno existente con nombre final igual
     if ((array_key_exists($campo_modificado,$lista_campos)) AND 
        ($lista_campos["$campo_modificado"]['modificar'] == 1))
     { $campo_existe = true;}
     
     // verifica que no es uno prohibido
     if (($nuevo_campo == 'OPTidioma')||($nuevo_campo == 'OPTestado'))
     { $campo_existe = true; }
     
     if (! $campo_existe)
     {
       // prepara valores
       $campo_nuevo = addslashes($registro["nuevo_campo"]);
       $valor_nuevo = addslashes($registro["nuevo_valor"]);

       // Verificamos gestion de crossref
       if ($campo_nuevo == 'crossref')
       {
         Inserta_Crossref($valor_nuevo, $id_referencia, $conexion);
       }

       AUX_verifica_campos_especiales($campo_nuevo, $valor_nuevo,
          $fecha_publicacion, $tipo_busqueda);
       
       // construye consulta
       $consulta_insertar = 'INSERT INTO ref_campos(id_campo_ref, campo, valor) '.
         'VALUES ('.$id_campo.',"'.$campo_nuevo.'","'.$valor_nuevo.'")';
       // ejecuta consulta   
       $resultado = mysql_query($consulta_insertar, $conexion);  
       
       // si da error, saca un mensaje
       if (!$resultado)
       {
           echo "No se pudo ejecutar la consulta ".$consulta_insertar;
       }
     }
  }

  //------------------------------------------------------------------------  
  // Comprobación. En caso que NO HAYA DEFINIDO NINGUN CAMPO. Se inserta uno
  // Dummy Author para poder acceder al registro desde el web.
  //------------------------------------------------------------------------
  else if ($registro['numero_campos'] == 0)
  {
     // construye consulta
     $consulta_insertar = 'INSERT INTO ref_campos(id_campo_ref, campo, valor) '.
       'VALUES ('.$id_campo.',"author","Sin Definir")';
       
     // ejecuta consulta   
     $resultado = mysql_query($consulta_insertar, $conexion);
     
     // si da error, saca un mensaje
     if (!$resultado)
     {
         echo "No se pudo ejecutar la consulta ".$consulta_insertar;
     }       
  }

  //----------------------------------------------------------------------  
  // Por ultimo, actualizamos la fecha de la referencia y tipo de busqueda
  //----------------------------------------------------------------------  
  // calcula la nueva fecha
  $nueva_fecha = Calcula_fecha_publicacion($fecha_publicacion);
  
  // actualiza fecha con crossref si no tiene
  if ($nueva_fecha == "'9999-01-01'")
  {
     $consulta_crossref = 'SELECT fecha_publicacion '.
      'FROM ref_relacion LEFT JOIN referencias '.
      'ON referencias.id_referencia=ref_relacion.id_ref_cruzada '.
      'WHERE referencia_cruzada=1 AND id_ref='.$id_referencia;
     
     $resultado = mysql_query($consulta_crossref, $conexion);
     
     if (mysql_num_rows($resultado) > 0)
     {
       $fecha_crossref = mysql_fetch_row($resultado);
       $nueva_fecha = $fecha_crossref[0];
     }
  }
  
  // construye consulta de actualizacion
  $consulta_fecha = 'UPDATE referencias SET fecha_publicacion='.$nueva_fecha.
    ', tipo="'.$tipo_busqueda.'" WHERE id_referencia='.$id_referencia;

  // ejecuta consulta   
  $resultado = mysql_query($consulta_fecha, $conexion);
     
  // si da error, saca un mensaje
  if (!$resultado)
  {
      echo "No se pudo ejecutar la consulta ".$consulta_fecha;
  } 
          
  // devuelve el valor del elemento insertado
  return $id_referencia;
} 
function inserta_BD_referencias($datosref, &$acciones)
{

  global $BASE_DATOS;
  global $USER_BD;
  global $PASS_BD;
  // incluido desde common_pub;
  global $public_estado_defecto;
  global $public_rel_tipos;
  global $public_tipos_bibtex;
  
  // asigna los registros y los sinonimos
  $registros = array();
  $registros = $datosref['bib'];
  $sinonimos = array();
  $sinonimos = $datosref['sin'];
  
  // lista de corssref
  $lista_crossref = array();
  
  // contador de avisos
  $contador_acciones = 1;
  
  // conecta a Base de Datos MySQL
  $conexion = mysql_connect("localhost",$USER_BD,$PASS_BD);
  // verifica si se abrió conexion
  if (!$conexion)
  {
     echo "Error al conectarse a la base de datos MYSQL\n";
     return;
  }
  
  // selecciona base de datos
  mysql_select_db($BASE_DATOS,$conexion);
  
  // -----------------------------------------------
  // inserta todos los sinonimos en la base de datos
  // -----------------------------------------------
  for (reset($sinonimos); $sinonimo = key($sinonimos); next($sinonimos))
  {
    if (Existe_Sinonimo_en_BD($conexion, $sinonimo))
    {
     $consulta_sinonimo = 'UPDATE ref_cadenas SET valor="'.$sinonimos[$sinonimo]
      .'" WHERE cadena="'.$sinonimo.'"';
    }
    else
    {
     $consulta_sinonimo = 'INSERT INTO ref_cadenas(cadena, valor) VALUES("'.
        $sinonimo.'","'.$sinonimos[$sinonimo].'")';
    }
    // ejecuta consulta
    $resultado = mysql_query($consulta_sinonimo,$conexion);
    
    // si dio error, insertalo en la lista de acciones
    if (!$resultado)
    {
        $acciones[$contador_acciones] = array (0,"ERROR de sinonimos: ".
                  $sinonimo." .No se pudo realizar la consulta ".
                  $consulta_sinonimo);
        $contador_acciones++;
    }
   
  }
  
  
  // recorre todos los elementos del array por tipo e identificador
  for (reset($registros); $tipo_reg = key($registros); next($registros))
  {
   for (reset($registros[$tipo_reg]); 
        $id_ref_bibtex = key($registros[$tipo_reg]); 
        next($registros[$tipo_reg]))
   {
      // ------------------------------------------------------
      // Prepara los valores de la referencia
      // ------------------------------------------------------
      // calcula la fecha de publicacion
      $fecha_publicacion = Calcula_fecha_publicacion(
                                        $registros[$tipo_reg][$id_ref_bibtex]);
      // mira fecha de referencia cruzada si no tiene una dada
      if (($fecha_publicacion == "'9999-01-01'") &&
          (strlen($registros[$tipo_reg][$id_ref_bibtex]['crossref']) > 0))
      {
         $id_ref_crossref = Quitar_Llaves(
                            $registros[$tipo_reg][$id_ref_bibtex]['crossref']);
	 
         for (reset($public_tipos_bibtex); 
              $tipo_pub = current($public_tipos_bibtex);
              next($public_tipos_bibtex))
         {
           if (array_key_exists($tipo_pub, $registros))
           {
             if (array_key_exists($id_ref_crossref, $registros[$tipo_pub]))
             {
               $fecha_publicacion = Calcula_fecha_publicacion(
                                       $registros[$tipo_pub][$id_ref_crossref]);
             }
           }
         }
      }                                  
                                        
      // determina idioma
      $idioma_pub = Determina_Idioma_Publicacion ($id_ref_bibtex, 
        $registros[$tipo_reg][$id_ref_bibtex]['OPTidioma']);

      // determina enlace si está presente
      $link_referencia_pub = Quitar_Llaves(
                           $registros[$tipo_reg][$id_ref_bibtex]['OPTenlace']);
      $tipo_link_pub = Determina_Tipo_Enlace($link_referencia_pub);
      
      // obtiene estado y visibilidad de publicacion
      if (strlen($registros[$tipo_reg][$id_ref_bibtex]['OPTestado'])>0)
      {
        // convierte a uppercase y quitale llaves
        $estado_pub = Quitar_Llaves(
                            $registros[$tipo_reg][$id_ref_bibtex]['OPTestado']);
        $estado_pub = strtoupper($estado_pub);
      }
      else
      { // si no está definido OPTestado, sobreescribelo como el valor
        // de estado por defecto
        $estado_pub = $public_estado_defecto;
      }

      $visibilidad = AUX_estado_es_visible($estado_pub);
      
      //  Da un aviso y no inserta si no es un estado valido
      if ($visibilidad == -1)
      {
         $acciones[$contador_acciones] = array (0,"ERROR de actualización: ".
               $id_ref_bibtex." tiene un estado inválido");
         $contador_acciones++;
         continue;         
      }

      // verifica el tipo de publicacion
      if (strlen($registros[$tipo_reg][$id_ref_bibtex]['OPTtipopub'])>0)
      {
         // verifica que es un tipo valido
         $tipo_formateado = trim(strtoupper(
          $registros[$tipo_reg][$id_ref_bibtex]['OPTtipopub']));
         
         for (reset($public_rel_tipos); $tipo_web = key($public_rel_tipos);
          next($public_rel_tipos))
         {
            if (in_array($tipo_formateado,$public_rel_tipos[$tipo_web]))
            {
               $tipo_busqueda = $tipo_formateado;
            }
         }
      }
      else
      {
         $tipo_busqueda = $tipo_reg;
      }

      // ------------------------------------------------------------
      // Ejecuta la consulta de Insercion/Actualizacion de referencia
      // ------------------------------------------------------------      
      // chequea si ya hay un registro con el mismo id_ref_bibtex
      $consulta_identificacion = "SELECT id_ref, id_campos ".
        'FROM referencias LEFT JOIN ref_relacion '.
        'ON referencias.id_referencia = ref_relacion.id_ref '.
        'WHERE referencia_cruzada=0 AND id_ref_bibtex ="'.$id_ref_bibtex.'"';
      
      // realiza consulta en Base de datos
      $resultado = mysql_query($consulta_identificacion, $conexion);      
      
      // si hay identificador, es una actualización
      if ($identificador_tmp = mysql_fetch_row($resultado))
      {
         $id_ref   = $identificador_tmp[0];
         $id_campo = $identificador_tmp[1];
         
         // borra todas las referencias cruzadas
         $consultas_borrar[1] = "DELETE FROM ref_relacion WHERE ".
          "referencia_cruzada=1 AND id_ref=".$id_ref;         
         // Borra todos los campos del registro
         $consultas_borrar[2] = "DELETE FROM ref_campos WHERE id_campo_ref=".
           $id_campo;
           
         // ejecuta consultas
         for ($i=1; $i<3; $i++)
         {
            $resultado = mysql_query($consultas_borrar[$i], $conexion);
            if (!$resultado)
            {
               $acciones[$contador_acciones] = array (0,"ERROR de actualización: ".
                  $id_ref_bibtex." .No se pudo realizar la consulta ".
                  $consultas_borrar[$i]);
               $contador_acciones++;
            }
         } 
         
         // realiza la consulta de actualización
         $consulta_update = "UPDATE referencias SET tipo='".$tipo_busqueda.
           "', tipo_bibtex='".$tipo_reg."', fecha_publicacion=".
           $fecha_publicacion.", visible=".$visibilidad.', idioma="'.
           $idioma_pub.'", estado="'.$estado_pub.'",tipo_link="'.$tipo_link_pub.
           '", link_referencia="'.$link_referencia_pub.
           '" WHERE id_referencia='.$id_ref;
        
         // ejecuta consulta
         $resultado = mysql_query($consulta_update, $conexion); 
         
         // actualiza el log de acciones
         if (!$resultado)
         {
            $acciones[$contador_acciones] = array (0,"ERROR de actualización: ".
               $id_ref_bibtex." .No se pudo realizar la consulta ".
               $consulta_update);
         } 
         else
         {
            $acciones[$contador_acciones] = array(1,
              "Actualización de <a href='public_editar.php?id_ref=".
              $id_ref."'>".$id_ref_bibtex.
              "</a> realizada correctamente");
         }
         $contador_acciones++;
      }
      else // si no, es una inserción
      {
   
         // inserta el registro en la TABLA referencias
         $consulta_insertar = 'INSERT INTO referencias(id_ref_bibtex, tipo,'.
           'tipo_bibtex, fecha_publicacion, visible, idioma, estado,'.
           'tipo_link, link_referencia) values("'.
           $id_ref_bibtex.'","'.$tipo_busqueda.'","'.$tipo_reg.'",'.
           $fecha_publicacion .','.$visibilidad.',"'.$idioma_pub.'","'.
           $estado_pub.'","'.$tipo_link_pub.'","'.$link_referencia_pub.'")';
   
         // inserta consulta en Base de datos
         $resultado = mysql_query($consulta_insertar, $conexion);

         // actualiza el log de acciones
         if (!$resultado)
         {
            $acciones[$contador_acciones] = array (0,"ERROR de inserción: ".
               $id_ref_bibtex." .No se pudo realizar la consulta ".
               $consulta_insertar);
            $id_ref = 0;
         } 
         else
         {
            //obtiene el valor de ID de la insercion
            $id_ref = mysql_insert_id();
              
            $acciones[$contador_acciones] = array(2,
            "Inserción de <a href='public_editar.php?id_ref=".$id_ref.
            "'>".$id_ref_bibtex."</a> realizada correctamente");
         }
         $contador_acciones++;
      
         if ($id_ref != 0)
         {
           // obtiene un identificador valido para los campos e inserta
           // la referencia general con ese identificador
           $consulta_id = 'SELECT MAX(id_campos) FROM ref_relacion';
           $resultado =  mysql_query($consulta_id, $conexion);
           $identificador_tmp = mysql_fetch_row($resultado);
           $id_campo = $identificador_tmp[0] + 1;
           
           $consulta_cross = 'INSERT INTO ref_relacion(id_ref,'.
            'id_campos, referencia_cruzada, id_ref_cruzada) VALUES('.
            $id_ref.','.$id_campo.',0,0)';
            
           $resultado =  mysql_query($consulta_cross, $conexion);
           
           if (! $resultado)
           {
            $acciones[$contador_acciones] = array (0,"ERROR de inserción: ".
               $id_ref_bibtex." .No se pudo realizar la consulta ".
               $consulta_cross);
            $contador_acciones++;             
           }
         }
      }

      // ------------------------------------------------------------
      // Ejecuta la consulta de Insercion de Campos
      // ------------------------------------------------------------ 
      // verifica si se inserto correctamente
      if ($acciones[$contador_acciones - 1][0] != 0)
      {
        
         // recorre todos los campos e insertalos en
         // la tabla REF_CAMPOS salvo el campo OPTidioma y OPTestado
         for (reset($registros[$tipo_reg][$id_ref_bibtex]); 
                    $campo = key($registros[$tipo_reg][$id_ref_bibtex]); 
                    next($registros[$tipo_reg][$id_ref_bibtex]))
         {
            if (($campo != 'OPTidioma')&&
                ($campo != 'OPTestado')&&
                ($campo != 'OPTenlace'))
            {
               // obtiene valor de array
               $valor = $registros[$tipo_reg][$id_ref_bibtex][$campo];
               $valor = addslashes($valor);
               
               // prepara la consulta de insercion
               $consulta_insertar = "INSERT INTO ref_campos(id_campo_ref,".
                "campo, valor) values(".$id_campo.",'".$campo."','".$valor.
                "') ";
               
               // inserta consulta en BD
               $resultado = mysql_query($consulta_insertar, $conexion); 
               
               // verifica resultado
               if (!$resultado)
               {
                  $acciones[$contador_acciones] =array (0, 
                     "ERROR de inserción de campo: ".
                     $id_ref_bibtex." .No se pudo realizar la consulta ".
                     $consulta_insertar);
                  $contador_acciones++;
               }
               
               // si el campo es un crossref, insertamos referencia cruzada
               if ($campo == 'crossref')
               {
	         $lista_crossref[$valor]=$id_ref;
               }
               
            }  
         }
      }
      
      // Da un aviso si el registro es visible y no tiene fecha
      if (($visibilidad == 1)&&($fecha_publicacion == "'9999-01-01'"))
      {
         $acciones[$contador_acciones] = array (3,"AVISO de actualización: ".
               $id_ref_bibtex." esta publicado sin fecha");
         $contador_acciones++;         
      }            
   }
  }
  
  // inserta todas las crossref
  for (reset($lista_crossref);
       $valor = key($lista_crossref);
       next($lista_crossref))
  {
     $id_ref = $lista_crossref[$valor];
     $resultado = Inserta_Crossref($valor, $id_ref, $conexion);
                
     if ($resultado == 1)
     {
                  $acciones[$contador_acciones] =array (0, 
                     "ERROR realizando referencia cruzada: ".
                     $id_ref_bibtex." .No se pudo realizar la consulta");
                  $contador_acciones++;
     }
     else if ($resultado == 2)
     {
                  $acciones[$contador_acciones] =array (0, 
                     "ERROR realizando referencia cruzada: ".
                     $id_ref_bibtex." .No se encontro destino -> ".$valor);
                  $contador_acciones++;                  
     }
  }  
  // cierra conexion MySQL
  mysql_close($conexion);

}