[F8] load all images first (gallery)

Hi everyone i made an XML gallery based on Kirupa’s example. when the page is loaded i have all my thumbnails and the first image loaded but then every time press on a thumbnail it takes a bit for the image to load. is it possible first to load ALL the images the just fly by the previrew ??? is there a better way to load the gallery ??

here is my code
[FONT=Courier New]


stop();

function loadXML(loaded) {
    if (loaded) {
        xmlNode = this.firstChild;
        image = [];
        description = [];
        thumbnails = [];
        _global.total = xmlNode.childNodes.length;
        for (i=0; i<total; i++) {
            image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
            description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
            thumbnails* = xmlNode.childNodes*.childNodes[2].firstChild.nodeValue;
            thumbnailer(i);
        }
        firstImage();
    } else {
        trace("file not loaded!");
    }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad =loadXML;
xmlData.load("graphic-p.xml");

/////////Load First Image Function///////////////////////////////////////////////

function firstImage() {
    if (loaded == filesize) {
        picture._alpha = 0;
        picture.loadMovie(image[0], 1);
        desc_txt.text = description[0];
    }
}

/////////Image Preloader Function//////////////////////////////////////////////////////

p = 0;
this.onEnterFrame = function() {
    filesize = picture.getBytesTotal();
    loaded = picture.getBytesLoaded();
    preloader._visible = true;
    if (loaded != filesize) {
        preloader.preload_bar._xscale = 100*loaded/filesize;
    } else {
        preloader._visible = false;
        if (picture._alpha<100) {
            picture._alpha += 10;
        }
    }
};

//////////Load clicked thumbnail Image Function////////////////////////////////////////////////

function callImage() {
        if (loaded == filesize) {
            picture._alpha = 0;
            picture.loadMovie(image[p], 1);
            desc_txt.text = description[p];
        }
}

//////////Thumbnail maker///////////////////////////////

function thumbnailer(k){
    loaded_counter=0;
    total_thumbs = _global.total;
    var container = thumbnail_mc.createEmptyMovieClip("th"+k,thumbnail_mc.getNextHighestDepth());
    container._visible=false;
    container._alpha=0;
    var image = container.createEmptyMovieClip("img", container.getNextHighestDepth());
    tlistener = new Object();
    tlistener.onLoadInit = function(target_mc) {
        target_mc.pictureValue = k;
        target_mc.onRollOver = function() {
            p = this.pictureValue;
            callImage();
            this._alpha = 50;
        };
        target_mc.onRollOut = function() {
            this._alpha = 100;
        };
        loaded_counter++;
        counting_txt = loaded_counter;
        if(loaded_counter==total_thumbs){
            grid_maker_01();
        }
    };
    image_mcl = new MovieClipLoader();
    image_mcl.addListener(tlistener);
    image_mcl.loadClip(thumbnails[k], "thumbnail_mc.th"+k+".img");
}

///////////Layout Functions/////////////////////////////////////////////////////////////////////

MovieClip.prototype.grid_maker_01=function(f){
    num=0;
    col=3;
    row=8;
    scale=100;
    space=8;
    for (j=0;j<row;j++){
    for (l=0;l<col;l++){
            if(num<_global.total){
            with(eval("this.thumbnail_mc.th"+num)){
                _x=((_width+space)*scale/100)*l;
                _y=((_height+space)*scale/100)*j;
                _xscale=_yscale=scale;
                _visible=true;
            }
            num++;
            }
        }
    }
    this.cascader();
}

//////////////////////////////////////////////////////////////////////////////////

MovieClip.prototype.cascader=function(){
    inter=100;
    c=0;
    delayed_fade=function(){
        if (c<_global.total){
            with(eval("this.thumbnail_mc.th"+c)){
                fadein();
            }
            c++;
        }else{
            main_menu.boton_reset._visible=true;
            clearInterval(delay);
        }
    }
    delay=setInterval(delayed_fade,inter);
}

///////////////////////////////////////////////////////////////////////////////

MovieClip.prototype.fadein=function(){
    this.onEnterFrame=function(){
        if (this._alpha<100){        
            this._alpha=this._alpha+5;
        }else{
            this._alpha=100;
            delete this.onEnterFrame;
        }
    }
}

///////////////////////////////////////////////////////////////////////////////////////

[/FONT]