Easing thumbnails action on the xml gallery

Hi guys i finally got my gallery to work(using tutorial and many different threads), and it’s an autoplay cross fading xml gallery with thumbs and 4 buttons(for,prev,play, pause), no i would like to add an easing in/out effects on the thumbnails, they are not smooth at all, also they don’t load(the thumbs) in order…how do i put a preloader for the thumbs??
I have no clue how to start, i know i need to call prototype and easing.mx function but i have no idea how to implement this to my code.
I do this once in a blue moon, usually just when i want to change my site(i am a photographer) so on top of the fact that i am not that good i also forget a lots of things, so i apologize if i am asking something stupid.
thanks a lot
This is the code:

function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
description = [];
thumbnails = [];
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;
thumbnails_fn(i);
}
id = setInterval(preloadPic, 100);
} else {
content = “file not loaded!”;
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load(“portfolio.xml”);
var id, current;
var kb = 0, p = 0;
var slide = 1;

function preloadPic() {
//kb == 0 ? (desc_txt.text=description[p], picture_num()) : null; //

clearInterval(id);
var con = picture.duplicateMovieClip("con"+kb, 9984+kb);

con.loadMovie(image[p]);
preloader._visible = 1;
preloader.swapDepths(con.getDepth()+3);

con._alpha = 0;
var temp = _root.createEmptyMovieClip("temp"+kb, 99+kb);
kb++;
temp.onEnterFrame = function() {
	var total = con.getBytesTotal();
	var loaded = con.getBytesLoaded();
	
	trace (loaded);
	percent = Math.round(loaded/total*100);
	trace (percent);
	
	preloader.preload_bar._xscale = percent;
	trace(preloader.preload_bar._xscale);
	
	if (con._width) {
		preloader._visible = 0;
		con.onEnterFrame = fadeIn;
		
		if (slide) {
			id = setInterval(nextImage, 4000);
		}
		delete this.onEnterFrame;
	}
};

}

MovieClip.prototype.fadeIn = function() {
if (this._alpha<100) {
current._alpha -= 10;
this._alpha += 10;
} else {
current._visible = 0;
current = this;
delete this.onEnterFrame;
}
};
function nextImage() {
p<total-1 ? p++ : p=0;

desc_txt.text = description[p];
picture_num();
preloadPic();

}
function prevImage() {
p>0 ? p-- : p=total-1;
desc_txt.text = description[p];
picture_num();
preloadPic();
}
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}
function thumbNailScroller() {
// thumbnail code!
this.createEmptyMovieClip(“tscroller”, 1000);
scroll_speed = 10;
tscroller.onEnterFrame = function() {
if ((_root._ymouse>=thumbnail_mc._y) && (_root._ymouse<=thumbnail_mc._y+thumbnail_mc._height)) {
if ((_root._xmouse>=(hit_right._x-40)) && (thumbnail_mc.hitTest(hit_right))) {
thumbnail_mc._x -= scroll_speed;
} else if ((_root._xmouse<=40) && (thumbnail_mc.hitTest(hit_left))) {
thumbnail_mc._x += scroll_speed;
}
} else {
delete tscroller.onEnterFrame;
}
};
}
function thumbnails_fn(k) {
thumbnail_mc.createEmptyMovieClip(“t”+k, thumbnail_mc.getNextHighestDepth());
tlistener = new Object();
tlistener.onLoadInit = function(target_mc) {
target_mc._x = hit_left._x+(eval(“thumbnail_mc.t”+k)._width+5)*k;
target_mc.pictureValue = k;
target_mc.onRelease = function() {
p = this.pictureValue-1;
nextImage();
};
target_mc.onRollOver = function() {
this.alpha = 50;
this.

thumbNailScroller();
};
target_mc.onRollOut = function() {
this._alpha = 100;
};
};
image_mcl = new MovieClipLoader();
image_mcl.addListener(tlistener);
image_mcl.loadClip(thumbnails[k], “thumbnail_mc.t”+k);
}

previous_btn.onRelease = function() {
slide = 0;
prevImage();
};
next_btn.onRelease = function() {
slide = 0;
nextImage();
};
play_btn.onRelease = function() {
slide = 1;
nextImage();
};
pause_btn.onRelease = function() {
slide = 0;
clearInterval(id);
};
preloadPic();