Preferisci solo due pulsanti 'avanti' e 'indietro', oppure un link per ogni immagine?

Per ora propongo metà della soluzione, ovvero la preparazione di tutte le funzioni per il mostra/nascondi. Manca ovviamente la generazione dei pulsanti e l'attribuzione di tali funzioni agli stessi:

codice:
window.onload = function()
{
   var cartoline = document.getElementById('cartoline')
   var lista = cartoline.getElementsByTagName('ul').item(0)
   var items = lista.getElementsByTagName('li')
   var imgs = lista.getElementsByTagName('img')

   var immagine_corrente = 0

   function mostra_nascondi(indice)
   {
      if ( indice < 0 )
      {
         indice = items.length - 1
         immagine_corrente = items.length - 1
      }
      if ( indice >= items.length )
      {
         indice = 0
         immagine_corrente = 0
      }
      for (var i = 0; i < items.length; i++)
      {
         if ( i == indice )
         {
            items.item(i).className = 'visibile'
         }
         else
         {
            items.item(i).className = 'invisibile'
         }
      }
   }

   mostra_nascondi(immagine_corrente)

   // Qui andrà il codice mancante.
}