$(function() {
  var replace = /(.+)(\.(png|gif|jpg))/i
  var hovers = $('img.hover');
  // Preload images and assign the original image to a variable
  hovers.each( function(img_i,img) {
    var loader, i, replacers;
    img.original_image = img.src;
    replacers = ['over', 'down'];
    for (i=0; rep = replacers[i]; i++) {
      loader = new Image(25,25);
      loader.src = img.src.replace(replace, '$1_' + rep + '$2');
    }
  });
  hovers.mouseover(function() { this.src = this.original_image.replace(replace, '$1_over$2') });
  hovers.mouseout(function() { this.src = this.original_image; });
  hovers.mousedown(function() { this.src = this.original_image.replace(replace, '$1_down$2'); });
});