function Rollovers_swap(id){ // id to swap in an image, null to swap out
  if (id != null)
  { 
    var image = document.images[id]
    if (image == null) return
  
    var newimage = this.images[id]
    if (newimage == null) return
    
    this.temp_img = image
    this.temp_src = image.src
    
    image.src = newimage.src
  }
  else
  {
    if ((this.temp_img != null) && (this.temp_src != null))
      this.temp_img.src = this.temp_src
      
    this.temp_img = null
    this.temp_src = null
  }
}
  
function Rollovers(image_list){
  this.images = new Object()    // Storage for swap-in images
  this.Install = Rollovers_Install
  this.swap = Rollovers_swap
  
  // Storage for the current swap-out image
  this.temp_img = null
  this.temp_src = null

  for (var i=0; i < image_list.length; i++) {
    var id = image_list[i][0]
    var src = image_list[i][1]
    
    var image = new Image()
    image.src = src
    this.images[id] = image
  }
}

function Rollovers_Install() {  // Should be called after page is loaded
  var _this = this
  var swap_out = function(){_this.swap(null);}

  var set = function (id){
    var image = document.images[id]
    if (image == null) return
    image.onmouseover = function(){_this.swap(id);}
    image.onmouseout = swap_out
  }
  
  for(var id in this.images) set(id);
}