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);
}