
function preAddObject(obj) {
  preLoader.objs[preLoader.objs.length] = obj;
  }

function preImageLoaded() {
  if (++preLoader.depth == 1) {
    while ((preLoader.depth > 0) && (preLoader.loadIndex < preLoader.objs.length)) {
      var obj = preLoader.objs[preLoader.loadIndex];

      if ( obj.doneLoading() ) preLoader.loadIndex++;
      else {
        preLoader.img.src = obj.nextPreload();
        preLoader.depth--;
        }
      }
    }
  }

var preLoader = new Array();

preLoader.depth = 0;
preLoader.img = new Image();
preLoader.img.onload = preImageLoaded;

preLoader.objs = new Array();
preLoader.loadIndex = 0;

preLoader.addObject    = preAddObject;
preLoader.startLoading = preImageLoaded;
