var ImageCache = Class.create({
  initialize: function() {
    this.imagePaths = $A(arguments);
    this.loadedImages = 0;
  },
  beginCache: function(callback){
    this.callback = callback;
    this.images = this.imagePaths.map( function(path) {
      var image = new Image();
      image.onload = this.onImageLoad.bind( this );
      image.src = path;
      return image;
    }, this);
  },
  onImageLoad: function(){
    if( ++this.loadedImages == this.images.length )
      if( this.callback ) 
        this.callback();
  }
});


Event.observe(window, 'load', function() {
  setTimeout( function(){
    new ImageCache( "Content.aspx/images/mortgage_home_hover.gif", 
                    "Content.aspx/images/insurance_home_hover.gif", 
                    "Content.aspx/images/pensions_home_hover.gif", 
                    "Content.aspx/images/savings_home_hover.gif" ).beginCache()
    }, 500 );
});
