allora, ho letto un pò in ritardo la tua risp e mi sono arrangiato, in modo diverso ma il succo è sempre quello....anzi sono andato avanti ma ho qualche problema con lo scope di variabili e array. Sperando che possiate darmi una mano:
codice:
// JavaScript Document
function loadimg (riferimento) {
	var all_images = document.getElementsByTagName('img');
	var thumb = new Array();
	var src_originale = new Array();
	var XMLHttp=null;
	
	espressione = new RegExp('^'+riferimento);
		
	for (i = 0; i < all_images.length; i++) {
		if	(espressione.test(all_images[i].id)) {
			thumb.push(all_images[i]);
			src_originale.push(all_images[i].src);
		}
	}
	
	for (n = 0; n < thumb.length; n++) {
	
		try {
			(XMLHttp=new ActiveXObject("Msxml2.XMLHTTP"))
		} catch(e) {
			try {
				(XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")) }
			catch(e) {
				XMLHttp=new XMLHttpRequest();
			}
		}
		
		thumb[n].src = 'img/indicator_arrows.gif';
		
		XMLHttp.onreadystatechange = function () {
		switch (XMLHttp.readyState) {
			case 0:
				alert('errore');
			break;
			case 1:
			break;
			case 2:
			break;
			case 3:
			case 4:
				thumb[n].src = src_originale[n];
			break;
		}
		}	
	XMLHttp.open("GET",src_originale[n]);
	XMLHttp.send(null);
	}
}

onload = loadimg('thumb');
volevo chiedere inoltre una cosa:
1 - ma questo script in modo che prenda tutte le immagini da me scelte, deve essere messo nell'head del documento o dopo che sono state stampate a video tutte le img?
2 - perchè il motore js mi da errore su thumb[n].src = src_originale[n]; linea 42? mi dice che non ha proprietà