Preloader for a nav clip that loads clips that load jpgs from an XML array

Hey Folks,
I searched everywhere and tried everything I could find or think of and 3 days later I’m giving up.
I have a nav clip that is full of thumbnails for a gallery type thing. You can see it here:

When I fill it with a ton of thumbs (later) it will take a while to fill and I would like a loader in the main window as there will be nothing there until the nav clip finishes loading.

The nav clip is dynamically loaded then populated with clips that in turn load the thumb jpgs from an XML file like this:

function buildNavigation() {
	this.row = 0;
	this.column = 0;
	this.createEmptyMovieClip("navigation", 5);
	navigation._x = navClipX;
	navigation._y = navClipY;
	//attach scroller to thumb clip
	myScroller.scrollTarget = navigation;
	// duplicate the navigation button.
	for (i=0; i<paths.length; i++) {
		navigation.attachMovie("baseThumb", "navBut"+i, i);
		// set thumbnails to the correct place.
		// place in rows & columns
		navigation["navBut"+i]._x = this.tnBorder+(this.column*(this.tnSizeW+this.tnSpacing));
		navigation["navBut"+i]._y = this.tnBorder+(this.row*(this.tnSizeH+this.tnSpacing+this.vertPad));
		if (this.column<(this.maxColumns-1)) {
		} else {
			this.column = 0;
		// load the thumb file
		loadMovie(thumbs*, navigation["navBut"+i].thumbImg);

The problem is getting the bytesLoaded or bytes total for it as you can imagine.
I really need help badly. I’m tearing my hair out by the roots now. I put a chopped down version of the fla and xml and images in a zip file here: (340k)
or if you need

I parsed the XML like this:

var xmlfile:XML = new XML();
var rotatetime:Number = new Number();
var randomplay:String = new String();
var shownavigation:String = new String();
var transition:String = new String();
var paths:Array = new Array();
var thumbs:Array = new Array();
var links:Array = new Array();
// the parsing function.
xmlfile.onLoad = function(success) {
	if (success) {
		// get parameters from xml to variables. 
		// booleans are parsed as strings: can't get them
		// to convert to booleans from xml .. :(
		rotatetime = parseInt(this.firstChild.firstChild.childNodes[0].firstChild);
		randomplay = String(this.firstChild.firstChild.childNodes[1].firstChild);
		shownavigation = String(this.firstChild.firstChild.childNodes[2].firstChild);
		transition = String(this.firstChild.firstChild.childNodes[3].firstChild);
		// get paths and links from xml to array.
		for (var i = 0; i<this.firstChild.childNodes[1].childNodes.length; i++) {
		_root.attachMovie("loader_image", "loader_navigation", 14);
		loader_navigation._x = imgClipX+((imgClipW-140)/2);
		loader_navigation._y = imgClipY+((imgClipH-50)/2);
		if (xmlfile.getBytesLoaded()<>xmlfile.getBytesTotal() or xmlfile.getBytesTotal() == 0 or xmlfile.getBytesTotal() == undefined) {
			prog = Math.ceil(xmlfile.getBytesLoaded()/xmlfile.getBytesTotal()*11);
		} else {
			_root.loader_navigation._visible = true;
		// build navigation if necessary.
		shownavigation == "true" ? buildNavigation() : null;
		// get first random image if necessary.
		randomplay == "true" ? nextImage=random(paths.length) : null;
		// start first rotation.
	// xmlfile not needed anymore, so deleting it.	
	delete xmlfile;
//whitespace fix and actual load command.
xmlfile.ignoreWhite = true;

Thanks again,