var source_cache = {};
var last_source  = '';

function load_source(filename, reload)
{
   if(typeof source_cache[filename] == 'undefined' || reload == true) {
      new Insertion.Top('source', '<p><em>Laddar <strong>' + filename + '</strong>...</em></p>');
      new Ajax.Updater('source', '/source/' + filename, {
         encoding:   'iso-8859-1',
         method:     'get',
         onComplete: function() {
            source_cache[filename] = $('source').innerHTML;
         }
      });
   } else {
      $('source').innerHTML = source_cache[filename];
   }
}

function show_source(filename)
{
   if(!$('source').visible())
      $('source').show();

   load_source(filename, last_source == filename ? true : false);
   last_source = filename;
}