Prototype.preloadCssImages = function() {
  var allImgs = [];

  $A(document.styleSheets).each(function(sheet) {
    var cssPile = '',
     csshref    = sheet.href || window.location.href,
     baseURLarr = csshref.split('/');

    baseURLarr.pop();//remove file path from baseURL array
    var baseURL = baseURLarr.join('/'); //create base url for the images in this sheet (css file's dir)
    if (baseURL) baseURL += '/'; //tack on a / if needed

    if (sheet.cssRules) {
      $A(sheet.cssRules).each(function(rule) {
        cssPile += rule.cssText;
      });
    } else cssPile += sheet.cssText;

    //parse cssPile for image urls and load them into the DOM
    cssPile.gsub(/[^\(]+\.(?:gif|jpg|jpeg|png)/, function(match) { //reg ex to get a string of between a "(" and a ".filename"
       var url = match[0];
       allImgs.push(new Image());
       allImgs.last().src = (url[0] == '/' || url.match('http://')) ? 
         url : baseURL + url;  //set src either absolute or rel to css dir
    });
  });

  return allImgs;
};